【发布时间】:2019-12-01 12:03:38
【问题描述】:
我正在尝试将所有嵌套数组与相同的键合并,有超过 100 个嵌套数组,我希望在键相同时将它们全部合并。
我尝试用更难的方式合并数组(我不希望这样做,因为我有 100 多个嵌套数组)。
var keys = [];
var stream = {arr1: [], arr2:[], arr3:[]}; // Nested Arrays
for(var i =0;i<arr_main.length;i++){
for(var key in arr_main[i]){
if(keys.find(x => x === key))
{
if(key == "arr1")
{
let arr = stream.arr1
let union = [...new Set([...arr, ...arr_main[i][key]])];
stream.arr1 = union
}
else if(key == "arr2")
{
let arr = stream.arr2
let union = [...new Set([...arr, ...arr_main[i][key]])];
stream.arr2 = union
}
else if(key == "arr3")
{
let arr = stream.arr3
let union = [...new Set([...arr, ...arr_main[i][key]])];
stream.arr3 = union
}
}else{
if(key == "arr1")
stream.arr1 = arr_main[i][key]
else if(key == "arr2")
stream.arr2 = arr_main[i][key]
else if(key == "arr3")
stream.arr3 = arr_main[i][key]
}
if(!keys.find(x => x === key))
keys.push(key);
}
}
预期输出:
{"arr1":[{"val1":"val1","val2":"val2"},{"val1":"val111","val2":"val222"}],"arr2":[{"val1":"val11","val2":"val22"},{"val1":"val1","val2":"val2"}],"arr3":[{"val1":"val111","val2":"val222"},{"val1":"val11","val2":"val22"}]}
【问题讨论】:
-
请添加预期的输出。
-
问题已更新
标签: javascript arrays knockout.js