不看后悔一辈子!JS中的遍历数组方法

数组遍历的几种方法

数组遍历有如下几种方法:

数组方法

  • map
  • forEach
  • filter
  • find
  • findIndex
  • every
  • some
  • reduce

其他方法

  • for
  • for in
  • for of
1.map

创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果,不改变原数组,返回值是一个新的数组。

var arr = [1, 2, 3, 4, 5, 6]
var newarr = arr.map(function (item, index, arr) {
    return item * 2
})
console.log(newarr) //[2, 4, 6, 8, 10, 12]
2.forEach

对数组的每个元素执行一次提供的函数,总是返回undefined,不改变原数组。

let arr = [1, 2, 3, 4, 5, 6]
arr.forEach((item,index)=>{
    arr[index] = item + 1  
})
console.log(arr); //[2, 3, 4, 5, 6, 7]
3.filter

对数组的每一项都进行过滤,返回符合条件的item组成的数组,不会改变原数组。

var arr = [1, 2, 3, 4, 5, 6];
var newarr = arr.filter(function (item, index, arr) {
    return item > 5
})
console.log(newarr);//6
4.find

遍历数组,找到第一个符合条件的项,并返回该项,否则返回undefined,不会改变数组。

let findArr = [1,2,3,4,5,6]
let findResult = findArr.find((item, index) => {
  return item === 1;
});
console.log(findResult); //1
5.findIndex

遍历数组找到第一个符合条件的项,并返回该项的索引值。否则返回-1,不会改变数组对象。

let findIndexArr = ['a','b','c'];
let findIndexResult = findIndexArr.findIndex((item, index)=>{
  return item === 'a';
});
console.log(findIndexResult); //true
6.every

对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。简单说就是看数组的每个元素是否符合要求,都符合则返回true,否则返回false

var arr = [1, 2, 3, 4, 5, 6];
var newarr = arr.every(function (item, index, arr) {
    return item > 5
})
console.log(newarr);//false
7.some

是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

let arr = [1, 2, 3, 4, 5, 6];
let newarr = arr.some(function (item, index, arr) {
    return item > 5
})
console.log(newarr);//true
8.reduce

接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值;第二个参数作为第一次调用的a的值。

let arr = [100, 200, 300, 400]
let newArr = arr.reduce(function(preval, item, index, arr) {
    console.log(preval, item, index, arr)
    return preval + item
})
console.log(newArr)

其他方法

1.for循环
let testArr = ['a','b','c']; 
for(var i = 0; a < testArr.length; i++){
  console.log(testArr[i]);
}
2.for in

遍历的是key

let testArr = ['子项0','子项1','子项2'];  
for(let key in testArr){
  console.log(key)
}
3.for of

遍历的是value

let testArr = ['子项0','子项1','子项2'];  
for(let value in testArr){
  console.log(value)
}

你可能感兴趣的:(不看后悔一辈子!JS中的遍历数组方法)