【发布时间】:2016-10-12 22:30:25
【问题描述】:
我有一个对象数组。数组中的每个对象也有一个数组。我想过滤两个数组,父数组和嵌套数组。例如我有一个像这样的数组:
[{list:[1,2]},{list:[1,2,3]},{list:[1,2,3,4]}]
当我应用过滤器时,它返回的对象中的列表元素的值大于 2,并且嵌套列表本身也被过滤。它应该返回
[{list:[3]},{list:[3,4]}]
不返回Obj1,因为它里面的list没有任何大于2的值,对于Obj2只返回list:[3],对于Obj3只返回list:[3,4]
不改变原始列表是否可以实现?
以下代码过滤元素大于 2 的对象
parent
.filter(obj => obj.list.some(el => el > 2))
接下来我该怎么做? 如果我为嵌套数组应用过滤器,例如
...
.filter(obj => obj.list.filter(el => el > 2))
然后我得到[[3],[3,4]] 但不是对象本身。也许有人知道解决方案?
【问题讨论】:
标签: javascript filter functional-programming ecmascript-6