常见的JS遍历数组的方法

 在 JavaScript 中,有多种方法可以遍历数组。以下是常见的几种方法及其区别:

  1. for 循环: 使用传统的 for 循环可以遍历数组的每个元素。通过索引迭代数组,可以方便地访问和修改元素。

  2. for (let i = 0; i < array.length; i++) { // 访问 array[i] }

    区别:for 循环是最基本的遍历方式,适用于大多数情况。它允许你按照特定的顺序访问数组的元素,并且可以在迭代过程中对数组进行修改。

  3. forEach 方法: 使用数组的 forEach 方法可以遍历数组的每个元素。它接受一个回调函数作为参数,在每次迭代时调用该函数,并将当前元素、当前索引和整个数组作为参数传递给回调函数。

    array.forEach(function(element, index, array) {
      // 访问 element
    });
     

    区别:forEach 方法提供了一种简洁的语法来遍历数组,但它无法中途返回或跳出循环。此外,forEach 方法不会改变原始数组。

  4. for...of 循环: 使用 for...of 循环可以遍历数组的每个元素。它提供了一种更简洁的语法,无需使用索引来迭代数组。

    for (let element of array) { // 访问 element }

    区别:for...of 循环更加简洁易读,而且不需要手动追踪索引。它会自动遍历数组的所有元素,并且无法修改原始数组。

  5. map 方法: 使用数组的 map 方法可以遍历数组的每个元素,并对每个元素执行回调函数中的操作。map 方法返回一个新数组,其中包含回调函数的返回值。

    const newArray = array.map(function(element, index, array) { return // 返回值 });

    区别:map 方法允许你在遍历过程中对每个元素进行转换或处理,并返回一个新的数组。它不会修改原始数组。

  6. 下面的就是15中遍历的方法(各位大佬多多指教)

 
  1. for 循环:

    • 使用简单的计数器变量进行循环迭代。
    • 通过array.length属性确定循环的次数,使用索引访问数组元素。
  2. forEach() 方法:

    • 使用array.forEach()方法,接受一个回调函数作为参数。
    • 回调函数将在数组的每个元素上执行,并传递当前元素作为参数。
  3. for...of 循环:

    • 使用for...of循环迭代数组。
    • 每次迭代都将提供数组中的一个元素。
  4. map() 方法:

    • 使用array.map()方法,在每个元素上执行回调函数。
    • 回调函数可以修改元素,并返回新的数组。
  5. filter() 方法:

    • 使用array.filter()方法,在每个元素上执行回调函数。
    • 回调函数根据条件返回满足条件的元素,生成一个新的数组。
  6. reduce() 方法:

    • 使用array.reduce()方法,接受一个回调函数和一个初始值作为参数。
    • 回调函数接收累加器和当前元素,并将它们组合成一个值。
    • 初始值用作第一次调用回调函数时的累加器的值。
  7. some() 方法:

    • 使用array.some()方法,判断数组中是否有满足条件的元素。
    • 回调函数返回一个布尔值来表示是否满足条件。
  8. every() 方法:

    • 使用array.every()方法,判断数组中的所有元素是否都满足条件。
    • 回调函数返回一个布尔值来表示是否满足条件。
  9. find() 方法:

    • 使用array.find()方法,查找数组中满足条件的第一个元素。
    • 回调函数返回一个布尔值来表示是否满足条件。
  10. findIndex() 方法:

    • 使用array.findIndex()方法,查找数组中满足条件的第一个元素的索引。
    • 回调函数返回一个布尔值来表示是否满足条件。
  11. indexOf() 方法:

    • 使用array.indexOf()方法,返回指定元素在数组中首次出现的索引。
    • 如果未找到元素,则返回-1。
  12. lastIndexOf() 方法:

    • 使用array.lastIndexOf()方法,返回指定元素在数组中最后一次出现的索引。
    • 如果未找到元素,则返回-1。
  13. entries() 方法:

    • 使用array.entries()方法,返回一个包含每个索引/值对的迭代器对象。
    • 可以使用for...of循环遍历迭代器对象并访问索引和值。
  14. keys() 方法:

    • 使用array.keys()方法,返回一个包含数组索引的迭代器对象。
    • 可以使用for...of循环遍历迭代器对象并访问索引。
  15. values() 方法:

    • 使用array.values()方法,返回一个包含数组值的迭代器对象。
    • 可以使用for...of循环遍历迭代器对象并访问值。


const numbers = [1, 2, 3, 4, 5];

// 使用 for 循环
console.log("使用 for 循环:");
for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}

// 使用 forEach() 方法
console.log("使用 forEach() 方法:");
numbers.forEach((number) => {
  console.log(number);
});

// 使用 for...of 循环
console.log("使用 for...of 循环:");
for (const number of numbers) {
  console.log(number);
}

// 使用 map() 方法
console.log("使用 map() 方法:");
const squaredNumbers = numbers.map((number) => {
  return number * number;
});
console.log(squaredNumbers);

// 使用 filter() 方法
console.log("使用 filter() 方法:");
const evenNumbers = numbers.filter((number) => {
  return number % 2 === 0;
});
console.log(evenNumbers);

// 使用 reduce() 方法
console.log("使用 reduce() 方法:");
const sum = numbers.reduce((accumulator, number) => {
  return accumulator + number;
}, 0);
console.log(sum);

// 使用 some() 方法
console.log("使用 some() 方法:");
const hasNegativeNumber = numbers.some((number) => {
  return number < 0;
});
console.log(hasNegativeNumber);

// 使用 every() 方法
console.log("使用 every() 方法:");
const allPositiveNumbers = numbers.every((number) => {
  return number > 0;
});
console.log(allPositiveNumbers);

// 使用 find() 方法
console.log("使用 find() 方法:");
const foundNumber = numbers.find((number) => {
  return number === 3;
});
console.log(foundNumber);

// 使用 findIndex() 方法
console.log("使用 findIndex() 方法:");
const foundIndex = numbers.findIndex((number) => {
  return number === 4;
});
console.log(foundIndex);

// 使用 indexOf() 方法
console.log("使用 indexOf() 方法:");
const index = numbers.indexOf(2);
console.log(index);

// 使用 lastIndexOf() 方法
console.log("使用 lastIndexOf() 方法:");
const lastIndex = numbers.lastIndexOf(4);
console.log(lastIndex);

// 使用 entries() 方法
console.log("使用 entries() 方法:");
const entries = numbers.entries();
for (const [index, number] of entries) {
  console.log(index, number);
}

// 使用 keys() 方法
console.log("使用 keys() 方法:");
const keys = numbers.keys();
for (const index of keys) {
  console.log(index);
}

// 使用 values() 方法
console.log("使用 values() 方法:");
const values = numbers.values();
for (const number of values) {
  console.log(number);
}

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值