首页 > 解决方案 > 合并数组内部的所有数组

问题描述

我在组合数组时遇到问题,我想得到来自另一个数组的数组。

数据

   datas = [
      {
        "id": "22333",
        "name": "",
        "details": [
          {
            "value": 1
          },
          {
            "value": 2
          }
        ]
      },
      {
        "id": "4444",
        "name": "",
        "details": [
          {
            "value": 99
          },
          {
            "value": 66
          }
        ]
      }
    ]

预期产出

final = [
    {
      "value": 1
    },
    {
      "value": 2
    },
    {
        "value": 99
    },
    {
        "value": 66
    }
  ]

代码

  datas.map((data) => ({ ...data.details}))

标签: javascriptecmascript-6

解决方案


替换mapflatMap

flatMap方法返回一个新数组,该数组通过将给定的回调函数应用于数组的每个元素,然后将结果展平一级而形成。它与深度为 1 的 amap后跟 a相同flat,但比分别调用这两个方法更有效。

const datas=[{id:"22333",name:"",details:[{value:1},{value:2}]},{id:"4444",name:"",details:[{value:99},{value:66}]}];
    
const flattened = datas.flatMap(obj => obj.details);

console.log(flattened);

获取数组map上的实际数字。details

const datas=[{id:"22333",name:"",details:[{value:1},{value:2}]},{id:"4444",name:"",details:[{value:99},{value:66}]}];
    
const flattened = datas.flatMap(obj => {
  return obj.details.map(el => el.value);
});

console.log(flattened);


推荐阅读