我具有以下结构:
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
];
答案 0 :(得分:1)
一种精巧的方法是减少初始数组:
let result = myArr.reduce((a,b) => a.concat(b.myArr || []), []);
从一个空数组开始,然后将所选属性连接到其中,从而生成一个对象数组。如果子数组是undefined
或其他虚假的,我们可以concat
一个空数组(实际上不会在原始数组中添加任何内容)