如何构造Js对象

问题描述

我想转换此对象

var users = {
    'c9b17cd29025fae1189168f55bd13f4e' : { 
       name: 'abc',amountMsg: 11 
     },'02d3c5737ac8861a6e80cf50322745e2':  { 
       name: 'def',amountMsg: 8 
    },'312wewq213a6e80hj43l42lmn6m7n3m':  { 
       name: 'ghj',amountMsg: 4 
    }
};

喜欢这样

var users = [
       {
         id : 'c9b17cd29025fae1189168f55bd13f4e',name: 'abc',amountMsg: 11 
       },{
         id : '02d3c5737ac8861a6e80cf50322745e2',name: 'def',amountMsg: 8 
       },{
         id : '312wewq213a6e80hj43l42lmn6m7n3m',name: 'ghj',amountMsg: 4 
       }
];

用户返回了我的server.js,我想将其转换为第二个以便轻松访问值

谢谢

解决方法

我假设在第二个示例中需要数组。

var users = {
    'c9b17cd29025fae1189168f55bd13f4e' : { 
       name: 'abc',amountMsg: 11 
     },'02d3c5737ac8861a6e80cf50322745e2':  { 
       name: 'def',amountMsg: 8 
    },'312wewq213a6e80hj43l42lmn6m7n3m':  { 
       name: 'ghj',amountMsg: 4 
    }
};

let formattedUsers = Object.entries(users).map(([id,data]) => ({id: id,...data}));
console.log(formattedUsers);

,

对象必须具有键。但是,如果要将对象集转换为数组,则可以执行下一步:

var users = {
    'c9b17cd29025fae1189168f55bd13f4e' : { 
       name: 'abc',amountMsg: 4 
    }
};

var modified = Object.keys(users).map(key => ({
  ...users[key],id: key,}));

console.log(modified);