我需要通过Merge/flatten an array of arrays in JavaScript?链接。但是通过该链接和许多其他链接显示了两个数组的合并。我所拥有的如下
[
{
"setter":[
{
"keyname":"Sample Size",
"cond":"=",
"value":1
}
]
},
{
"setter":[
{
"joinedcond":"and"
},
{
"keyname":"Sample Size",
"cond":"=",
"value":2
}
]
}
]
那就是我有一个数组,并且在该数组内有一个数组“setter”。
我想要的实际上是将所有setter数组合并为一个数组。话虽这么说,合并应该产生以下输出
[
{
"setter":[
{
"keyname":"Sample Size",
"cond":"=",
"value":1
},
{
"joinedcond":"and"
},
{
"keyname":"Sample Size",
"cond":"=",
"value":2
}
]
}
]
帮助将不胜感激。谢谢
最佳答案
您可以使用Array#reduce
完成
var arr = [{"setter":[{"keyname":"Sample Size","cond":"=","value":1}]},{"setter":[{"joinedcond":"and"},{"keyname":"Sample Size","cond":"=","value":2}]}];
var finalArr = arr.reduce((a,x)=>{
(a[0].setter = a[0].setter || []).push(...x.setter);
return a;
},[{}]);
console.log(finalArr);
.as-console-wrapper { max-height: 100% !important; top: 0; }