我有一个js数组
var array = [ {no: 50, name: 'Ajinkya'}, {no: 89, name: 'Akshay'}, {no: 29, name: 'Rajesh'}, {no: 15, name: 'Vikram'}, ]
想要将其转换为数组
var array = [50:'Ajinkya', 89:'Akshay', 29:Rajesh, 15: 'Vikram']
我已经尝试过了
array.forEach(
function(x){
temp[x['no']] = x['name'];
})
但是它没有给出预期的结果
答案 0 :(得分:1)
您可以将对象与所需的键/值对映射,并将它们分配给单个对象。
使用的方法:
Object.assign
用于从某些对象中创建单个对象,...
用于将数组作为参数,Array#map
用于转换对象,
var array = [{ no: 50, name: 'Ajinkya' }, { no: 89, name: 'Akshay' }, { no: 29, name: 'Rajesh' }, { no: 15, name: 'Vikram' }],
object = Object.assign(...array.map(({ no, name }) => ({ [no]: name })));
console.log(object);
答案 1 :(得分:1)
如果您是说50:'Ajinkya'
是第50个元素为'Ajinkya'的数组,则
[{ no: 50, name: 'Ajinkya' },
{ no: 89, name: 'Akshay' },
{ no: 29, name: 'Rajesh' },
{ no: 15, name: 'Vikram' }].reduce((acc, prev) => {
acc[prev.no] = prev.name;
return acc;
}, []);
答案 2 :(得分:1)
const array1 = [ {no: 50, name: 'Ajinkya'}, {no: 89, name: 'Akshay'}, {no: 29, name: 'Rajesh'}, {no: 15, name: 'Vikram'} ];
const array2 = {} ;
for (const itm of array1) {
array2[itm.no] =itm.name;
}
答案 3 :(得分:0)
我将数组简化为一个对象,您可以在其中通过id查找项目。数组在这里真的没有意义。
const array = [ {no: 50, name: 'Ajinkya'}, {no: 89, name: 'Akshay'}, {no: 29, name: 'Rajesh'}, {no: 15, name: 'Vikram'}, ];
const newStructure = array.reduce((acc, {no,name}) => {
acc[no] = name;
return acc;
}, {});
console.log(newStructure);