首页 > 解决方案 > 如何在对象数组中扩展子数组并删除字符串某些元素

问题描述

我想将数组中的子数组扩展为像这样的对象中的新元素

{
  "date": "1/1/2020",
  "points": [
    {
      "location": "pool"
    },
    {
      "location": "garden"
    }
 ]
},
{
  "date": "2/1/2020",
  "points": [
    {
       "location": "school"
    },
    {
       "location": "lake"
    }
  ]
}

成为

{
   "date": "1/1/2020",
   "location": "pool"
},
{
   "date": "",
   "location": "garden"
},
{
   "date": "2/1/2020",
   "location": "school"
},
{
   "date": "",
   "location": "lake"
}

因为我想在 vuetify 表中显示这些数据,并且我想显示像这样的合并行

在此处输入图像描述

标签: javascriptvuetify.js

解决方案


您可以使用flatMap遍历数组和展平多维数组。用于map格式化单个对象。

let arr = [{
  "date": "1/1/2020",
  "points": [{
    "point_name": "pool"
  }, {
    "point_name": "garden"
  }]
}, {
  "date": "2/1/2020",
  "points": [{
    "point_name": "school"
  }, {
    "point_name": "lake"
  }]
}];

let result = arr.flatMap(({date,points}) => points.map(({point_name}) => ({date,point_name})));
console.log(result);


推荐阅读