简体   繁体   中英

Convert Array Objects key value pairs properties to a single key value pair and insert it into array again

I have a js array

var array = [ {no: 50, name: 'Ajinkya'}, {no: 89, name: 'Akshay'}, {no: 29, name: 'Rajesh'}, {no: 15, name: 'Vikram'}, ]

want to convert it into an array

var array = [50:'Ajinkya', 89:'Akshay', 29:Rajesh, 15: 'Vikram']

I have tried this

array.forEach(
 function(x){
 temp[x['no']] = x['name'];
})

But its not giving expected result

You could map objects with the wanted key/value pairs and assign them to a single object.

Methods used:

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

If you mean that 50:'Ajinkya' is array which 50th element is 'Ajinkya' then

[{ 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;
}, []);
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;
} 

I would reduce the array into a object where you can look up the items by id. An array doesn't really make sense here.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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