【问题标题】:How can I map inside another map, getting index of each first map?如何在另一个地图中映射,获取每个第一张地图的索引?
【发布时间】:2019-01-30 16:11:10
【问题描述】:

我有两个数组,一个是 ID 数组,例如:

fonogramas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

存储信息的数组:

rank_completo = []

第二个是 JSON 数组,例如:

rank = [ { Tocadas: 1424,
    Artista: 'Felipe Araújo',
    id_Artista: 1663,
    Musica: 'Atrasadinha - Feat. Ferrugem - Ao Vivo',
    id_Musica: 44337,
    Mes: 1,
    Dia: 30,
    Tipo_Emissora: 2,
    Categoria_Radio: 'FM' },
{ Tocadas: 1356,
    Artista: 'Gabriel Diniz',
    id_Artista: 1642,
    Musica: 'O Nome Dela é Jennifer',
    id_Musica: 43158,
    Mes: 1,
    Dia: 30,
    Tipo_Emissora: 2,
    Categoria_Radio: 'FM' } ]

我需要为每个 ID 映射第一个数组,然后在第二个数组上找到它们在哪里,下面是我带来 -1 的代码:

fonogramas.map( ef => {
    rank_completo.push(`{ ${rank.map( er => { er.Musica; }).indexOf(ef.id)}, ${ef.id}}`);
});

谢谢!!

编辑 1:

我的期望是:

rank_completo = [{id: 5, rank: 3},{id: 2, rank: 1},{id:1, rank:2},{id:4, rank: 4}]

编辑 2:匹配示例

ef.id = 44337

我有一个包含两个元素的数组,在这两个元素之上,ef.id 是第一个,所以我的结果应该是

rank_completo=[{id: 44337, rank: 0}]

【问题讨论】:

  • 请添加想要的结果。
  • 在您的 JSON 中没有 id 键?你在匹配什么?
  • @CodeManiac id_Musica
  • 输出中的{id: 5, rank: 3},{id: 2, rank: 1} 是什么?您的输入有 44337 作为 id。请提供实际输入、输出和清晰的问题陈述以创建minimal reproducible example
  • 如果您将44337 分配给0,那么fonogramas 的用途是什么? rank = index 是否属于该项目?

标签: javascript node.js dictionary


【解决方案1】:

您可以简单地将排名数组与 id_Musica 和 fonogramas 值的索引进行映射。

var fonogramas = [1, 2, 3, 44337, 5, 6, 7, 8, 9, 43158],
    rank = [ { Tocadas: 1424, Artista: 'Felipe Araújo', id_Artista: 1663, Musica: 'Atrasadinha - Feat. Ferrugem - Ao Vivo', id_Musica: 44337, Mes: 1, Dia: 30, Tipo_Emissora: 2, Categoria_Radio: 'FM' }, { Tocadas: 1356, Artista: 'Gabriel Diniz', id_Artista: 1642, Musica: 'O Nome Dela é Jennifer', id_Musica: 43158, Mes: 1, Dia: 30, Tipo_Emissora: 2, Categoria_Radio: 'FM' }],
    rank_completo = rank.map(({ id_Musica }) =>
        ({ id_Musica, rank: fonogramas.indexOf(id_Musica) }));

console.log(rank_completo);

【讨论】:

    【解决方案2】:

    我想你想要这个:

    rank_completo = rank
        .map( 
            (r, i) => ({
                rank: i,
                id: r.id_Musica
            })
        );
    

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      相关资源
      最近更新 更多