forEach( ),map(),filter( ),some( ),every( )是ES5新增的数组方法,其中都有三个参数:
1、currentValue:当前元素,
2、index:当前索引号,
3、array:进行操作的数组
其中除了currentValue不可省略,其余两个参数都可省略
1、forEach( )
var arr = [1, 4, 9, 16]
arr.forEach(function(currentValue, index, array) {
console.log('数组' + '[' + array + ']' + '的第' + index + '个值是:' + currentValue)
console.log('平方:' + currentValue * currentValue)
})
运行结果如下:
2、map( )
和forEach的功能和用法类似,都是用作数组循环
var arr = [1, 4, 9, 16]
arr.map(function(currentValue, index, array) {
console.log('开根号:' + Math.sqrt(currentValue))
})
forEach 和map都是用来将数组逐个遍历,可用来渲染数据
3、filter 过滤
var arr = [1, 4, 9, 16]
var evens = arr.filter(function(currentValue, index, arr) {
return currentValue % 2 == 0; //提取出偶数
})
console.log(evens)
filter 的中文意思是过滤的意思,顾名思义,就是把不满足条件的元素过滤出去,把满足条件的元素提取出来,上面的例子就是将偶数提取出来了
4、 some
判断数组中是否有满足条件的元素存在,返回的是布尔值
var arr = [1, 4, 9, 16]
var flag = arr.some(function(currentValue, index, arr) {
return currentValue % 2 == 0; //判断是否有偶数存在
})
console.log(flag)
因为数组arr中存在偶数,所以返回的是true
5、every
判断数组中是否所有元素都满足条件,返回的是布尔值
var arr = [1, 4, 9, 16]
console.log(arr.every(function(currentValue) {
return currentValue > 3; //判断是否都大于三
}))
因为其中有元素不大于三所以返回的是false