繁体   English   中英

我如何在另一个地图中进行映射,获取每个第一张地图的索引?

[英]How can I map inside another map, getting index of each first map?

我有两个数组,一个是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}]

您可以简单地将id_Musica和fonogramas值的索引映射到rank数组。

 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); 

我想你想要这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM