js数组的迭代方法
ES5为数组定义了5个迭代的方法。每个方法都接受两个参数:
(1)要在每一项上运行的函数
(2)运行该函数的作用域对象--影响this的值(可选)。
运行的函数会接受三个参数:(1)数组项的值(2)该项在数组中的位置(3)数组对象本身。
.every()
对数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true.
var number = [1,2,3,4,5,6,4,3,2,1];
var everyResult = number.every(function(item,index,array){
return (item > 2);
})
console.log(everyResult) false
.some()
对数组的每一项运行给定函数,如果该函数对任一项返回true,则返回true
var number = [1,2,3,4,5,6,4,3,2,1];
var someResult = number.some(function(item,index,array){
return (item > 2);
})
console.log(someResult) true
filter()
对数组的每一项运行给定函数,返回该函数会返回true的项组成的数组。
var number = [1,2,3,4,5,6,4,3,2,1];
var filterResult = number.filter(function(item,index,array){
return (item > 2);
})
console.log(filterResult) (6) [3, 4, 5, 6, 4, 3]
.map()
对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组
var number = [1,2,3,4,5,6,4,3,2,1];
var mapResult = number.map(function(item,index,array){
return (item * 2);
})
console.log(mapResult)index.js:94 (10) [2, 4, 6, 8, 10, 12, 8, 6, 4, 2]
.forEach()
对数组的每一项运行给定函数。该方法没有返回值
var number = [1,2,3,4,5,6,4,3,2,1];
var forEachResult = number.forEach(function(item,index,array){
console.log(forEachResult)
})undefined