Js中常见的几种数组遍历方法

数组遍历

1. forEach()

arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
  • callback

    为数组中每个元素执行的函数,该函数接收一至三个参数:

    currentValue 数组中正在处理的当前元素。

    index 可选 数组中正在处理的当前元素的索引。

    array 可选 数组本身。

  • thisArg 可选

    可选参数。当执行回调函数 callback 时,用作 this 的值。

 let arr = [1,2,3,4,5]
        arr.forEach(function(value,index){
    
    
            arr[index] +=1;
        })
        console.log(arr); //输出 [2,3,4,5,6]
		

2. map()

创建一个新的数组,其中每一个元素又调用数组中的每一个元素执行提供的函数得来;

  • forEach和map的区别

    forEach() 方法不会返回执行结果,而是undefined。

    也就是说,forEach()会修改原来的数组。而map()方法会得到一个新的数组并返回。

3. some()

遍历数组,只要有一个以上的元素满足条件就返回 true,否则返回 false ,退出循环。

arr.some(callback(element[, index[, array]])[, thisArg])

4. every()

遍历数组,每一个元素都满足条件 则返回 true,否则返回 false。

5. for…in

主要用于遍历对象,for()中的格式:for(key in obj){} key表示obj对象的每一个键值对的

6. for…of

var arr = ['a', 'b', 'c', 'd'];

        for (let a in arr) {
    
    
          console.log(a); // 0 1 2 3
        }

        for (let a of arr) {
    
    
          console.log(a); // a b c d
        }

上面代码表明,**for…in循环读取键名,for…of循环读取键值。**如果要通过for…of循环,获取数组的索引,可以借助数组实例的entries方法和keys方法

for…in循环有几个缺点
  ①数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”等等。
  ②for…in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。
  ③某些情况下,for…in循环会以任意顺序遍历键名。
  for…in循环主要是为遍历对象而设计的,不适用于遍历数组。

for…of循环
  有着同for…in一样的简洁语法,但是没有for…in那些缺点。
  不同于forEach方法,它可以与break、continue和return配合使用。
  提供了遍历所有数据结构的统一操作接口

猜你喜欢

转载自blog.csdn.net/m0_46893049/article/details/125757802