array常用方法总结

forEach

1.对于遍历数组,除了常用的for循环,还有forEach方法

2.不改变原数组

arr.forEach(function(value, index, array){})

value: 当前遍历对象

index: 当前序号

array:遍历的数组

值得注意的是在此方法中改变value并不能改变原数组,要想改变它,得使用array

var a= [1, 2, 3];
a.forEach((item, index, arr)=> {
    item= 5;
})
console.log(a)//[1, 2, 3]
var b= [4, 5, 6];
b.forEach((item, index, arr)=> {
    arr[index]= 9;
})
console.log(b)//[9, 9, 9]

forEach方法也不能直接使用for循环中的break来中断跳出循环,但可以通过return来跳过当前遍历过程。

map

arr.map(function(item, index, array){})

1.数组映射,从原数组映射出一个新的数组

2.不改变原数组

var a= [1, 2, 3]
console.log(a.map(function(item){
    return item*item
}))

输出: [1, 4, 9]

备注: 如果没有return则返回undefined

filter

arr.filter

(function(item, index, array){})

1.筛选出所有符合条件的元素,生成一个问题新数组,true符合

2.不改变原数组

every

arr.every(function(item, index, array){})

1.判断整个数组的所有元素是否都符合条件,若符合返回true,否则为false

2.不改变原数组

some

arr.some(function(item, index, array){})

1.判断整个数组是否有元素符合条件,若有返回true,否则为false

2.不改变原数组

find

arr.find(function(item, index, array){})

1.返回符合条件的第一个元素,没有则返回undefined

2.不改变原数组

reduce

arr.reduce(function(total, item, index, arr){}, initialValue)

1.reduce并不意味着进行减法运算,而是指数组元素从左到右一个接一个缩减

2.数组元素依次计算累加

3.不改变原数组

var a= [1, 2, 3]
console.log(a.reduce(function(total, item, index, arr){
    return total+item
}, 100))
原文地址:https://www.cnblogs.com/yanze/p/7235853.html