过滤多维数组中为空的children

文章讲述了在处理Element级联选择器时遇到数据最后一层children为空的问题,通过递归实现过滤。强调了map与forEach、filter的区别:map创建新数组,forEach不返回值且不影响原数组,filter筛选元素并返回新数组。
摘要由CSDN通过智能技术生成

在使用element级联选择器时,数据从后端获取,但是获取后的数据最后一层中children为空,所以显示如下:

利用递归实现过滤:

注意:这里可以不用const一个新的arr。map可以替换为filter,但不能使用forEach;理由如下:

        forEach():用于遍历数组中的每个元素,并对每个元素执行一个回调函数,回调函数可以接收三个参数:当前元素的值、当前元素索引、数组本身。但forEach方法不会返回任何值,它只是对每个元素执行回调函数。

        map():也是用于遍历数组中的每个元素,但map方法返回一个新的数组,这个数组包含了对原数组中每个元素执行回调函数后的返回值。它也可以接收三个参数:当前元素的值、当前元素索引、数组本身。

总结:forEach方法不会返回任何结果,它本身不会修改原数组,但允许callback更改原数组的元素。而map方法返回一个新的数组,并且会影响原数组。另外,具体会不会影响原数组要看怎么使用。

为什么可以替换为filter呢,map和filter又有什么区别?

        filter():过滤器,该方法根据某个条件过滤数组中的元素,并且返回一个新的数组,新数组仅包含符合条件的元素。举例说明:

        总结:map和filter使用方式相似,都是对数组进行操作的方法,都接收一个回调函数作为参数。但在功能和返回值上面有区别。map大多用于创建新数组,filter大多用于筛选。

        注意:map、forEach、filter都不能对非数组进行检测,当要检测的数组为空时,不会执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值