JS 所有遍历方法详解(一目了然)

      话不多说,直接开始介绍:

数组遍历方法

  1. for循环

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

    这是最基础的循环遍历数组的方式,通过索引访问数组元素。

  2. for...of循环

    Javascript
    1for (let value of arr) {
    2  console.log(value);
    3}

    for...of循环可以直接迭代可迭代对象(如数组)的值,适用于任何实现了迭代器接口的数据结构。

  3. forEach()

    Javascript
    1arr.forEach((value, index, array) => {
    2  console.log(value);
    3});

    forEach()方法对数组中的每个元素执行指定的函数,但它不能被中断(无法使用break或return跳出循环)。

  4. map()

    Javascript
    1let mappedArr = arr.map((value, index, array) => {
    2  return value * 2; // 返回一个新的数组,其中元素是原数组元素的两倍
    3});

    map()方法创建一个新数组,其结果是调用提供的函数在每个元素上产生的结果。

  5. some()

    Javascript
    1let isFound = arr.some((value, index, array) => {
    2  return value > 3; // 如果数组中有任意元素使条件为真,则返回true
    3});

    some()方法测试数组中是否存在至少一个元素使得测试函数返回true。

  6. every()

    Javascript
    1let allLessThan5 = arr.every((value, index, array) => {
    2  return value < 5; // 如果数组中所有元素都使条件为真,则返回true
    3});

    every()方法测试数组中的所有元素是否都使得提供的测试函数返回true。

  7. filter()

    Javascript
    1let filteredArr = arr.filter((value, index, array) => {
    2  return value % 2 === 0; // 返回一个新的数组,只包含使条件为真的元素
    3});

    filter()方法创建一个新数组,其中包含通过测试的所有元素。

对象遍历方法

  1. for...in循环

    Javascript
    1let obj = { a: 1, b: 2, c: 3 };
    2for (let key in obj) {
    3  if (obj.hasOwnProperty(key)) {
    4    console.log(key + ": " + obj[key]);
    5  }
    6}

    for...in循环用于遍历对象的可枚举属性,包括继承的属性,因此通常会配合hasOwnProperty()检查属性是否属于对象自身。

  2. Object.keys().forEach()

    Javascript
    1Object.keys(obj).forEach(key => {
    2  console.log(key + ": " + obj[key]);
    3});

    使用Object.keys()获取对象的所有自有可枚举属性名数组,再对其使用forEach()遍历。

  3. Object.entries().forEach()

    Javascript
    1Object.entries(obj).forEach(([key, value]) => {
    2  console.log(key + ": " + value);
    3});

    Object.entries()返回一个二维数组,包含了对象的所有可枚举属性及其值,可以遍历这个数组得到键值对。

  4. for...of + Object.entries()

    Javascript
    1for (let [key, value] of Object.entries(obj)) {
    2  console.log(key + ": " + value);
    3}

    结合for...ofObject.entries()可以简洁地遍历对象的键值对。

其他遍历机制

除了以上提到的,还有其他像reduce()(用于数组的累加或者聚合)、find()(找到第一个符合条件的数组元素),以及findIndex()(找到第一个符合条件的元素的索引)等方法也是常用的遍历手段,不过它们并不严格意义上逐个遍历整个集合,而是在遍历过程中寻找特定条件的元素。

请注意,不同的遍历方法适用场景各异,根据实际需求选择合适的遍历方式非常重要。同时,在遍历过程中要考虑到原型链的影响以及遍历效率等因素。

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别放弃我还在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值