您的位置:

JS数组遍历的几种方法

一、使用for循环遍历数组


const arr = [1, 2, 3, 4];
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

使用for循环遍历数组是最基本的方法。通过设置循环的初始值和循环条件来遍历数组中的元素。每次循环,我们都会访问下一个元素。

for循环还可以倒序遍历数组。这是因为我们只需要修改循环的初始值和循环条件,使它们反向即可。


for (let i = arr.length - 1; i >= 0; i--) {
  console.log(arr[i]);
}

二、使用forEach遍历数组


const arr = [1, 2, 3, 4];
arr.forEach(function(item) {
  console.log(item);
});

forEach方法是一个数组的函数方法,它将数组中的每个元素传递给回调函数,并依次执行回调函数。它在每个元素上运行回调函数,但它不返回新数组。回调函数的参数包括元素的值、元素的索引和数组本身。

和for循环不同,forEach方法不能跳过或者停止循环,但它在代码可读性上却非常友好。

三、使用map遍历数组并返回新数组


const arr = [1, 2, 3, 4];
const newArray = arr.map(function(item) {
  return item * 2;
});
console.log(newArray);

和forEach方法类似,map方法也是一个数组的函数方法。它将元素传递给回调函数,允许我们修改元素值,最后返回一个新的数组。

map方法最有用处的地方在于不改变原数组。如果需要对原数组进行改变,使用数组的forEach方法或者for循环会更合适。

四、使用for-in遍历数组


const arr = [1, 2, 3, 4];
for (let index in arr) {
  console.log(arr[index]);
}

for-in循环通常用于枚举对象。但是它也可以枚举数组,它会枚举数组元素和属性(包括非数字属性)。如果只是想遍历数组,for-in循环并不是最好的选择。

五、使用for-of遍历数组


const arr = [1, 2, 3, 4];
for (let item of arr) {
  console.log(item);
}

for-of循环是ES6引入的,它是一种用于遍历可迭代对象的循环,包括数组、字符串、Set和Map等。for-of循环提供了一种更简洁、更简单的语法来遍历数组。

六、使用while循环遍历数组


const arr = [1, 2, 3, 4];
let i = 0;
while (i < arr.length) {
  console.log(arr[i]);
  i++;
}

while循环和for循环一样,也可以用于遍历数组。只要设置好退出循环的条件,使用while循环遍历数组同样可行。

七、遍历字符串并转换为数组


const str = 'hello world';
const arr = str.split('');
for (let item of arr) {
  console.log(item.toUpperCase());
}

当需要遍历字符串时,我们可以使用JavaScript的split()方法将它转换为数组,然后使用for-of循环来遍历每一个单独的字符。在这个示例中,我们把字符串中的所有字符转换为大写的形式。

八、使用Array.from()将类数组转换为数组并遍历


const obj = {
  0: 'a',
  1: 'b',
  2: 'c',
  length: 3
};
const arr = Array.from(obj);
for (let item of arr) {
  console.log(item);
}

有些时候,我们需要遍历类数组。虽然类数组不是真正的JavaScript数组形式,但是可以使用Array.from()方法将它转换为真正的JavaScript数组。

九、使用reduce()方法遍历数组并计算元素总和


const arr = [1, 2, 3, 4];
const sum = arr.reduce(function(prev, curr) {
  return prev + curr;
}, 0);
console.log(sum);

reduce()方法也是一个数组的函数方法。它接收一个回调函数,其中前一个元素的结果会传递到下一个元素中。一旦处理完所有元素,reduce()方法将返回一个结果。

在这个示例中,我们使用reduce()方法计算了数组中所有元素的总和。在回调函数中,prev代表前一个元素的结果,而curr代表当前的元素。

十、ES6的解构赋值和剩余运算符遍历数组


const arr = ['a', 'b', 'c', 'd'];
const [first, second, ...others] = arr;
console.log(first, second, others);

ES6的解构赋值和剩余运算符可以帮助我们更容易地遍历和操作数组。

在这个示例中,我们使用解构赋值从数组中提取了前两个元素,并使用了剩余运算符将剩下的元素存入了一个新数组中。

十一、使用for-await-of循环遍历异步生成器生成的数组


async function* generateArr() {
  yield 'a';
  yield 'b';
  yield 'c';
  yield 'd';
}

(async () => {
  for await (let item of generateArr()) {
    console.log(item);
  }
})();

异步生成器是ES2018中引入的新特性之一。在这个示例中,我们创建了一个异步生成器来生成一个数组,然后使用for-await-of循环来遍历这个数组。

在遍历异步生成器生成的数组时,我们使用了(async () => {})()自执行函数,以便在程序中使用async/await语法。

java数组遍历,java数组遍历的几种方法

2022-12-02
JS数组遍历的几种方法

2023-05-18
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
JS中判断数组长度的几种方法

2023-05-20
java方法整理笔记(java总结)

2022-11-08
python基础学习整理笔记,Python课堂笔记

2022-11-21
javascript简要笔记,JavaScript读书笔记

2022-11-17
python方法笔记,python基础教程笔记

2022-11-20
python学习之笔记(python的笔记)

2022-11-10
我的python学习基础笔记,python自学笔记

2022-11-18
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
最新python学习笔记3,python基础笔记

2022-11-17
js代码遍历对象(Js对象遍历)

本文目录一览: 1、js中数组和对象循环遍历 2、js循环遍历对象的方法 3、js遍历json对象(推荐) js中数组和对象循环遍历 数组: var arr = [‘a’,‘b’,'c']; for

2023-12-08
获取数组中的json文件遍历,js递归遍历json树返回数组

2022-11-25
JavaScript中数组对象转换的几种方法

2023-05-18
3种高效遍历数组的方法详解

2023-05-17
js中怎么遍历php的数据,php遍历数据库

2022-11-21
印象笔记记录java学习(Java成长笔记)

2022-11-12
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
Go遍历数组详解

2023-05-19