您的位置 首页 php

《web前端笔记5》js数组—循环遍历方法汇总map、forEach、filter

数组的几个迭代(循环遍历)的方法

1:map()

将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。原数组没有变化.

 let arr = [1,2,3,4,5] 
let arrNew = arr.map(res=> {
    return res+1
}) 
console.log(arr) //原数组没有变化
console.log(arrNew)//组成一个新的数组返回  

map接收一个函数作为参数,该函数调用的时候,map传入三个参数:

1:当前成员 2:当前位置 3:数组本身

map方法还可以接收第二个参数,用来绑定回调函数内部的this变量

 let arr = ['a', 'b', 'c'];
[1, 2].map(function (e) { 
    return this[e]; 
}, arr) 
// ['b', 'c']  

上面代码通过map()方法的第二个参数,将回调函数内部的this对象,指向arr数组。

如果数组有空位,map()方法的回调函数在这个位置不会执行,会跳过数组的空位。

2:forEach()

1: forEach函数类似于map,相当于for循环去遍历、 区别是 forEach不返回值。只是操作数据

也就是说如果数组的遍历目的是为了得到返回值,那么用map,否则用forEach。

forEach()遍历数组不是为了得到返回值,

而是为了在屏幕输出内容,所以不必使用map()方法

forEach()方法也可以接受第二个参数,绑定参数函数的this变量。

 var out = []; [1, 2, 3].
forEach(function(elem) { 
this.push(elem * elem);
 }, out); 
out // [1, 4, 9]  

注意:forEach()方法不会跳过undefined和null,但会跳过空位

forEach方法无法中断执行,总会将所有的成员遍历完。

如果希望符合某个条件就中断遍历,要使用for循环

3:for 循环

 var arr = [1, 2, 3]; 
for (var i = 0; i < arr.length; i++) {
 if (arr[i] === 2) break; 
    console.log(arr[i]);   //1
 }  

4: filter()

用于过滤数组成员,满足条件的成员组成一个新数组返回、不会改变原数组

 [1, 2, 3, 4, 5].filter(function (elem) { 
return (elem > 3);
 }) // [4, 5]  

5: some() every()

这两个方法类似“断言”(assert),返回一个布尔值,表示判断数组成员是否符合某种条件。

some方法是只要一个成员的返回值是true,则整个some方法的返回值就是true,否则返回false。

every方法是所有成员的返回值都是true,整个every方法才返回true,否则返回false。

注意:对于空数组,some方法返回false,every方法返回true,回调函数都不会执行。

 let arr = [1,2,4,5,6] let arr1 = arr.every((ele, index, array)=>{ return ele>3 }) console.log(arr1) //false let arr = [1,2,4,5,6] let arr1 = arr.some((ele, index, array)=>{ return ele>3 }) console.log(arr1) //true  

以上方法总结:

1:every():对数组的每一项都运行的函数,如果每一项函数都返回的是true,则最后结果返回的true。

2:filter() 对数组的每一项都运行的函数,函数返回true的项会组成数组返回。

3:forEach() 对数组每一项都运行 没有返回值。相当于for循环去遍历元素。

4:map() 对数组每一项都运行,返回由每次函数调用的结果构成的数组。

对原始数组同样位置的元素做操作。非常适合创建与原数组一一对应的新数组。

5:some()对每一项都运行的,如果有一个返回的true,则返回true。

文章来源:智云一二三科技

文章标题:《web前端笔记5》js数组—循环遍历方法汇总map、forEach、filter

文章地址:https://www.zhihuclub.com/79320.shtml

关于作者: 智云科技

热门文章

网站地图