javascript - 如何合并多维数组?

标签 javascript arrays multidimensional-array

这里我有 data.payloadfolderObjs 我想将 data.payload 合并到 folderObjsfolderObjsfolderid == data.payload[i].upperfolderid 看到 patternObj 控制台输入我想要的结果

我尝试使用 concat,但它合并到 folderObjs 数组中,而不是合并到特定的 folderObjs folderid

data.payload
(2) [{…}, {…}]
 0: { folderid: 903, folderName: "f11", upperfolderid: 899} 
 1: { folderid: 904, folderName: "f22", upperfolderid: 899}

folderObjs
(4) [{…}, {…}, {…}, {…}]
 0: { folderid: 899, folderName: "f1", upperfolderid: 122}
 1: { folderid: 900, folderName: "f2", upperfolderid: 122}
 2: { folderid: 901, folderName: "f3", upperfolderid: 122}
 3: { folderid: 902, folderName: "f4", upperfolderid: 122}

 // TS

 folderObjs : Folder[] = [];
 patternObj : Pattern[] = [];

 this.patterObj = this.folderObjs.concat(data.payload);
 console.log(this.patternObj);

 // This type result I want
 0: {folderid: 899, folderName: "f1,upperfolderid: 122,
  {0: {folderid: 903, folderName: "f11", upperfolderid: 899} 
   1: {folderid: 904, folderName: "f22", upperfolderid: 899}
  }
 }
 1: {folderid: 900, folderName: "f2",upperfolderid: 122}
 2: {folderid: 901, folderName: "f3",upperfolderid: 122}
 3: {folderid: 902, folderName: "f4",upperfolderid: 122}

最佳答案

我希望下面的例子能有所帮助。

const result = this.folderObjs.map(val => {
  return Object.assign({}, val, this.payload.filter(v => v.upperfolderid === val.folderid));
});
console.log(result);

关于javascript - 如何合并多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53827069/

相关文章:

php - PHP 结果中的未知数组

javascript - 将 ndarray 转换为数组的数组

javascript - Promise.all 过早解决

c - 如何在C中声明一个大小与运行时输入的字符串大小相同的char数组?

javascript - 开源 Feed/Wall 插件

python - 在 Python 中创建一个带有变量定义的字符串(nympy.arange 对象)

c++在数组中读取结构时遇到问题

PHP Array 删除重复的键值并只显示一个

javascript - 将卡片样式应用于单个 Google Feed API 结果

javascript - 如何在 React Native 中的 React Navigation 中禁用 createDrawerNavigator 中的 header