Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将多个对象合并到一个数组中_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript将多个对象合并到一个数组中

Javascript将多个对象合并到一个数组中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在尝试按其键合并数组中的对象。我试过一些解决办法,但没能解决。我的阵型就像 [0:{PersonIds: "6",TypeIds: "2",VekilIds: "6"},1:{PersonIds: "4",TypeIds: "27",VekilIds: "11"}] 我想得到的是 [0:{PersonIds: "6,4",TypeIds: "

我正在尝试按其键合并数组中的对象。我试过一些解决办法,但没能解决。我的阵型就像

[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”},
];
常量myObj=myArr.reduce((acc、cur、idx)=>{
const newAcc={…acc};
for(让[key,val]的Object.entries(cur)){
如果(!newAcc[key]){
newAcc[key]=val;
}否则{
newAcc[key]=`${newAcc[key]},${val}`;
}
}
返回newAcc;
});

console.log(myObj)
您可以使用
reduce
对象。条目
以获得所需的输出:

const person=[{PersonIds:“6”,TypeIds:“2”,VekilIds:“6”},{PersonIds:“4”,TypeIds:“27”,VekilIds:“11”}];
const result=person.reduce((a,e,i,s)=>{
Object.entries(e.forEach)([k,v])=>{
(a[k]??=[])。推(v);
a[k]=i==s.length-1?a[k]。连接(','):a[k]
});
返回a;
},{});

console.log([result])执行相同操作的另一种方法,但将值放入数组而不是逗号分隔的字符串中

let result=[{}];
让数组=[{PersonIds:“6”,TypeIds:“2”,VekilIds:“6”},{PersonIds:“4”,TypeIds:“27”,VekilIds:“11”}];
for(让键入数组){
for(数组[key]中的let值){
如果(!result[0][value]){result[0][value]=[]}
结果[0][value]。推送(数组[key][value]);
}
}

控制台日志(结果)您知道所编写的数据类型不是有效的JavaScript,对吗?这就像将两个字符串合并为一个字符串,而不是合并来自远程的两个对象。我刚把它记录下来,它在工作。谢谢你的帮助!很高兴为您提供帮助,祝您编码愉快!