这是我的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?