首页 > 技术文章 > JS中some(),every(),fiflter(),map()各种循环的区别理解

leileilei 2018-09-02 18:52 原文

1.some():返回一个Boolean,判断是否有元素符合func条件
const arr = [1,2,3,4]; arr.some((item)=>{return item>1})

打印结果: true


2.every():返回一个Boolean,判断每个元素是否符合func条件
const arr1 = [1,2,3,4]; arr.every((item)=>{return item>3});
打印结果:
false


3.filter():返回一个符合func条件的元素数组(es6)

let ages = [33,44,55,66,77]; ages.filter((item)=>{return item>18})
打印结果[33, 44, 55, 66, 77]

这个可以用来做删除数组元素的操作,这个操作很好用,假如我要删除一个父id下有多个元素的数组,假如使用splice,

删除这个数组下的第一个元素后,坐标i就会改变,导致后面的删除错乱,且删除操作达不到效果,这个时候就可以使用如下代码:el.list是要进行删除操作的数组,rootCateId为父Id

el.list = el.list.filter(({ rootCateId }) => rootCateId !== '559165010958356488');
这样就可以删除所有父Id为559165010958356488的数据,其他的操作可以同理处理


4.map():返回一个新的array,数组元素由每一次调用函数产生结果组成
const arr =[1,2,3,4,5,6]; arr.map((item)=>{return item*10})
打印结果 [10, 20, 30, 40, 50, 60]

推荐阅读