如何通过键有效地返回子数组

时间:2018-12-18 20:14:21

标签: javascript vue.js

我具有以下结构:

    with arcpy.da.UpdateCursor(in_features, ["SHAPE@", "Working_comments"]) as cur:
        for e1,e2 in itertools.combinations(cur,2):
            if e1[0].overlaps(e2[0]):
               e1[1] = "overlaps"
            cur.updateRow(e1[1])

我正在寻找一种有效的方法将子数组提取到单独的数组中。子数组与父数组具有相同的键。子数组可能存在也可能不存在。

我可以循环遍历它们,然后将它们手动添加到新数组中(如果存在)。

在这种特殊情况下,如果可能的话,我宁愿使用某种类型的地图/过滤器。

我追求的结果是:

myArr: [
  {
    key1: 'foo',
    myArr: [
      { a: 'blah' }
      { a: 'blah2'}
    ],
  },
  {
    key1: 'foo2',
  }
  ...More similar entries
];

1 个答案:

答案 0 :(得分:1)

一种精巧的方法是减少初始数组:

let result = myArr.reduce((a,b) => a.concat(b.myArr || []), []);

从一个空数组开始,然后将所选属性连接到其中,从而生成一个对象数组。如果子数组是undefined或其他虚假的,我们可以concat一个空数组(实际上不会在原始数组中添加任何内容)