这是我的json对象:

{
   id: 3,
   cno: 103,
   username: 'basha',
   name: 'New Complaint',
   desc: 'Need bag',
   storeId: [ 5, 1 ]
}


我想要这样的预期输出:

[
  {id: 3,cno: 103,username: 'basha',name: 'New Complaint',desc: 'Need bag',storeId:5},
  {id: 3,cno: 103,username: 'basha',name: 'New Complaint',desc: 'Need bag',storeId:1}
]

最佳答案

您选择.map是正确的。问题是,您正在尝试更新对象,并且使用引用传递了对象。因此,所有对象都将具有相同的ID。您将必须创建一个副本,以免覆盖值。您可以使用Object.assign



var data = {
   id: 3,
   cno: 103,
   username: 'basha',
   name: 'New Complaint',
   desc: 'Need bag',
   storeId: [ 5, 1 ]
};

var result = data.storeId.map(function(id){
  return Object.assign({}, data, {storeId: id});
});
console.log(result)





如果您不习惯使用ES6功能,则可以检查以下内容:How do I correctly clone a JavaScript object?

10-06 15:57