我试图通过它们的键合并数组中的对象。我尝试了一些解决方案,但无法解决。我的数组就像;
[0:{PersonIds: "6",TypeIds: "2",VekilIds: "6"},1:{PersonIds: "4",TypeIds: "27",VekilIds: "11"}]
我想得到的是;
[0:{PersonIds: "6,4",TypeIds: "2,27",VekilIds: "6,11"}]
感谢帮助
像这样的事情会起作用:
const myArr = [
{PersonIds: "6",TypeIds: "2",VekilIds: "6"},
{PersonIds: "4",TypeIds: "27",VekilIds: "11"},
];
const myObj = myArr.reduce((acc, cur, idx) => {
const newAcc = {...acc};
for (let [key, val] of Object.entries(cur)) {
if (!newAcc[key]) {
newAcc[key] = val;
} else {
newAcc[key] = `${newAcc[key]},${val}`;
}
}
return newAcc;
});
console.log(myObj);
它用于Array.prototype.reduce
遍历整个数组。因为我们省略了一个初始值,它会跳过第一个索引,只使用第一个索引作为初始值。然后对于数组中的每个后续对象,我们迭代它的键并检查该键是否存在于累加器上——如果没有,我们将其插入值;如果是这样,我们从当前迭代中附加该键处的值,用逗号分隔。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句