首页 > 开发 > JS > 正文

嵌套数组的遍历

2017-09-05 07:26:48  来源:网友分享

1,描述:有一个类似这样结构的数组:

2,需求:现在想过滤这个数组,只剩下name含有xxx的一个数组,无论是不是新数组都可以。也就是说,只对最里层的bbb这个数组进行过滤,留下name为xxx的,其它的去掉,bbb外层的都不动。
例如我现在需要这样过滤:只要name中含有 “1”的。那么结果应该是:

也就是说只对 bbb 这个数组进行过滤,bbb中,符合要求(比如name属性含有“1”)的元素留下,不然就移除。如果bbb数组里的所有元素都不符合,即过滤后bbb为空数组,那么bbb,aaa组成的整个对象都不留下
不知道这样解释说清楚了没有。
3,说明:用过map加filter加indexof,没有搞出来。也用过双for循环,也没有搞出来。可能是思路受阻了,现在脑子一片浆糊。
4,伪代码即可,各路大神求助!
5,感谢各位大神的指教!

解决方案

var array;var str = 'xxx';For object in array    object.bbb = object.bbb.filter(x => x.name.indexOf(str) !== -1)result = array.filter(object => object.bbb.length != 0);