我有两个数组,一个是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}]
答案 0 :(得分:2)
您可以简单地将等级数组与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);
答案 1 :(得分:0)
我想你想要这个:
rank_completo = rank
.map(
(r, i) => ({
rank: i,
id: r.id_Musica
})
);