javascript - 我正在努力展平一个对象中的两个数组

标签 javascript arrays

我有以下对象,我正在努力将两个数组展平,以便它们成为一个数组。

这是对象

{ 
  "id":"575802",
  "listOfStuff":[  
      "AB",
   ],
   "listOfDocs":[  
      [  
         {  
            "doc_id":"123456",
            "id":"123",
            "filename":"myFileName.pdf",
         }
      ],
      [  
         {  
            "doc_id":"1234",
            "id":"123",
            "filename":"myFileName2.pdf",
         }
      ]
   ]
}

这是我想要的输出:

{  
   "id":"575802",
   "listOfStuff":[  
      "AB",
   ],
   "listOfDocs":[ 
         {  
            "doc_id":"123456",
            "id":"123",
            "filename":"myFileName.pdf",
         } ,
         {  
            "doc_id":1234,
            "id":"123",
            "filename":"myFileName2.pdf",
         }
   ]
}

我已尝试执行以下操作来展平数组,但没有奏效。

Array.prototype.concat.apply([], row.listOfDocs);

最佳答案

const data =  {
  "id": "575802",
  "listOfStuff": [
    "AB"
  ],
  "listOfDocs": [[
    {
      "doc_id": "123456",
      "id": "123",
      "filename": "myFileName.pdf"
    }],
    [{
      "doc_id": 1234,
      "id": "123",
      "filename": "myFileName2.pdf"
    }
  ]]
}

data.listOfDocs = data.listOfDocs.reduce((acc, val) => acc.concat(val), [])

console.log(data);

您可以使用 .flat(),您还需要一个用于 IE 的 polyfill。

您可以使用上述解决方案来解决您的问题,而不是使用 flat。

关于javascript - 我正在努力展平一个对象中的两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110978/

相关文章:

javascript - 静态变量中相互依赖的ES6类

c - 尝试使用 C 查找数组中的最大项

JavaScript 正则表达式 : apostrophe TRUE for PC version, FALSE(适用于移动设备)

javascript - React.js 命名空间组件什么也不显示

javascript - Ember.js 如何触发按下 "enter"的按钮 Action ?

PHP创建整数值数组,受n个偏移量和所有总和的限制

C:数组结构中的结构数组

arrays - ReDim 上的 2D 数组下标超出范围

javascript - Lodash中函数同步返回

javascript - Firefox:禁用退出警告框?