ES5为数组对象定义了5个迭代方法(即递归,简单的说就是自己可以调用自己)。
每个方法接收两个参数:要在每一项上运行的函数(接收3个参数:数组项的值,该项在数组中的位置,数组对象本身)和(可选的)运行该函数的作用域对象——影响this的值。
array.xxx(function(item,index,arr), thisValue)
参数 | 描述 |
---|---|
item | 必须。当前元素的值 |
index | 可选。当前元素的索引值 |
array | 可选。当前元素属于的数组对象 |
thisValue | 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,”this” 的值为 “undefined” |
1.every()
对数组中的每一项运行给定函数,如果该函数每一项都返回true,测返回true
var num = [1,2,3,4,5,4,3,2,1];
var everyTest = num.every(function(item,index,array){
return (item > 2 );
})
console.log(everyTest); //false
2.some()
对数组中的每一项运行给定函数,如果该函数任一项都返回true,测返回true
var num = [1,2,3,4,5,4,3,2,1];
var everyTest = num.some(function(item,index,array){
return (item > 2 );
})
console.log(everyTest); // true
3.filter()
对数组中的每一项运行给定函,返回该函数会返回true的项组成的数组
var num = [1,2,3,4,5,4,3,2,1];
var filterTest = num.filter(function(item,index,array) {
return (item > 2);
});
console.log(filterTest) // [3, 4, 5, 4, 3]
4.map()
对数组中的每一项运行给定函,返回每次函数调用的结果组成的数组
var num = [1,2,3,4,5,4,3,2,1];
var mapTest = num.map(function(item,index,array) {
return (item * 2);
})
console.log(mapTest) //[2, 4, 6, 8, 10, 8, 6, 4, 2]
5.forEach()
对数组中的每一项运行给定函,该函数没返回值,本质上与for循环一样
var num = [1,2,3,4,5,4,3,2,1];
var foreachTest = num.forEach(function(item,index){
console.log(item)// 1,2,3,4,5,4,3,2,1
})
(完)
( 0 )个小伙伴在吐槽