ES5中定义了五种数组的迭代方法:every(),filter(),forEach(),map(),some()。
每个方法都接受两个参数:要在每一项运行的函数(必选)和运行该函数的作用域的对象-影响this的值(可选);
每个方法中的函数都会接受三个参数:该项的值(item),该项在数组的位置(index),数组对象本身(arr);
目前支持的浏览器有:IE9+, Firefox1.5+, Firefox(Gecko)1.8+, Chrome, Opera, Safari.
1.every()
对数组中的每一项都进行操作,而且每一项都要符合函数的条件.才会返回ture,否则返回false。
var num = [1,2,3,4,5];
var eve = num.every(function(item, index, arr){
return (item > 2);
});
console.log(eve); //false
2.some()
这个方法与every()方法极为相似,但又有所不同,every要求每一项都要符合函数里面的条件,而some只要求有数组中的某一项符合即可,这点类似于或与和。返回的是布尔值,使用事例如下:
1 var num = [1,2,3,4,5];
2 var eve = num.some(function(item, index, arr){
3 return (item > 2);
4 });
5 console.log(eve); //true
3.filter()
filter就相当于一个过滤器,符合条件的留下,不符合条件的去除。返回符合条件的数组!案例如下:
var num = [1,2,3,4,5];
var eve = num.filter(function(item, index, arr){
return (item > 2);
});
console.log(eve); //[3,4,5]
4.forEach()
forEach()方法可以使数组中的每个值都执行指定的函数,而且forEach()方法是唯一没有返回值的方法!案例如下:
var num = [1,2,3,4,5];
var eve = num.forEach(function(item, index, arr){
//执行你想要的操作
});
5.map()
map()方法同样可以使数组中的每一个值都执行指定的函数,并且返回得到的新的数组!案例如下:
var num = [1,2,3,4,5];
var eve = num.map(function(item, index, arr){
return item + 2;
});
console.log(eve); //[3,4,5,6,7]