![](/img/trans.png)
[英]Update object array without adding new properties from another object
[英]Adding new array to object without deleting the previous array
我有一个数组 obj,我正在添加另一个 object 链接,我正在 object 中创建一个系列数组。 我想在系列数组之后创建另一个电影数组。
const obj = {
projectId: 0,
gridId: 0,
createValues: [
{
field: "string",
value: "string"
}
]
};
const dataCompo = {
"model-10389": 164703,
"model-10388": 164704,
"model-10387": 164705
};
const dataTraca = {
"model-10389": [1656, 1234, 1245],
"model-10384": [1656, 1234, 1245],
"model-10383": [1656, 1234, 1245],
};
const ser = Object.entries(dataCompo).map(([key, value]) => ({
modelId: key.substring(6),
id: value
}));
obj.links = {
serie: ser
};
const mov = Object.entries(dataTraca).map(([key,value]) => ({
modelId: key.substring(6),
ids: value
}));
obj.links = {
movie: mov
};
console.log(obj);
事情是这样的,它正在用电影之一替换整个链接 object 和 serie 阵列。 我不太清楚如何使用扩展运算符。
我设法在一行中做到了这一点:
obj.links = { serie: ser, movie:mov };
但是我想像上面一样单独做
你可以做这样的事情
const obj = { projectId: 0, gridId: 0, createValues: [{ field: "string", value: "string" }] }; const dataCompo = { "model-10389": 164703, "model-10388": 164704, "model-10387": 164705 }; const dataTraca = { "model-10389": [1656, 1234, 1245], "model-10384": [1656, 1234, 1245], "model-10383": [1656, 1234, 1245], }; const newData = [ ['movie', dataCompo], ['serie', dataTraca] ].reduce((res, [key, value]) => { return {...res, [key]: Object.entries(value).map(([key, value]) => ({ modelId: key.substring(6), id: value })) } }, obj) console.log(newData)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.