JSforOfForIn——遍历数组与对象的利器

一、JSforOfForIn的概述

JSforOfForIn是一种JavaScript语言的遍历方式,操作数组或对象的元素。它在ES2015中被引入,是一种更加简便易懂的遍历方式,相比于传统的for循环、forEach、for-in等,在代码书写和阅读上具备更高的可读性和可维护性。

二、JSforOfForIn的优势

JSforOfForIn的使用有以下优势:

1、语法简洁:使用for…of和for…in遍历对象和数组,语法简洁清晰。

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

2、不会遍历原型链上的属性或方法:for-in语句会遍历对象中的所有可枚举属性,包括它的原型链上的属性,而for…of语句只会遍历对象自身的属性值。

    const obj = {
        name: "张三",
        age: 18
    };
    Object.prototype.sex = "male";
    for (let key in obj) {
        console.log(key); // 输出name、age、sex
    }
    for (let value of Object.values(obj)) {
        console.log(value); // 输出"张三"、18
    }

3、支持迭代器:for-of迭代器支持定制化迭代器,使得在遍历数组或对象时,支持更加复杂的迭代逻辑。

    class Iterator {
        constructor(current) {
            this.current = current;
        }
        next() {
            if (this.current === null) {
                return { done: true };
             } else {
                const value = this.current.value;
                this.current = this.current.next;
                return { value, done: false };
             }
        }
    }
    function* generator() {
        yield "a";
        yield "b";
        yield "c";
     }
    const iter = new Iterator(generator());
    for (let i of iter) {
        console.log(i); // 输出a、b、c
    }

三、注意事项

JSforOfForIn在遍历数组和对象时,需要注意:

1、for-of不能遍历普通对象,只能遍历迭代器对象和数组

2、for-in不能保证属性值的顺序以及不会遍历Symbol类型的属性,对于数组来说会枚举继承自原型对象的方法和属性

3、当需要求数组元素的索引时使用for-of循环遍历数组时。

    const arr = ["a", "b", "c", "d"];
    for (let [index, value] of arr.entries()) {
        console.log(index, value); // 输出0a、1b、2c、3d
    }

四、JSforOfForIn与其他遍历方式的比较

与传统遍历方式相比,JSforOfForIn可以实现相同的功能,而且更简洁易读。

与forEach相比,JSforOfForIn不仅是在代码书写上更简洁,而且可以在遍历的过程中使用break和continue等语句跳出或进入到遍历过程之中。

    const arr = [1, 2, 3, 4, 5, 6];
    arr.forEach(function (value, index, array) {
        if (value % 2 === 0) {
            return;
        }
        console.log(`${index}:${value}`); // 输出:0:1 2:3 4:5
    });
    for (let value of arr) {
        if (value % 2 === 0) {
            continue;
        }
        console.log(value); // 输出1 3 5
    }

五、JSforOfForIn的应用场景

JSforOfForIn的优势在于可以遍历数组或对象元素,因此适用于过滤筛选、查找匹配、排序和映射等操作。

六、小结

JSforOfForIn是现代JavaScript语言中遍历数组和对象的一种简便易懂的语言结构。它的优势在于语法简洁、可读性强、支持迭代器以及可以过滤、筛选、查找、排序和映射等操作。但是注意,在使用for-of和for-in的遍历语句时,需要注意其内部实现遍历逻辑,以免写出无效的代码。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/300781.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-29 12:52
下一篇 2024-12-29 14:18

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python遍历集合中的元素

    本文将从多个方面详细阐述Python遍历集合中的元素方法。 一、for循环遍历集合 Python中,使用for循环可以遍历集合中的每个元素,代码如下: my_set = {1, 2…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • Python刷课:优化学习体验的利器

    Python刷课作为一种利用自动化技术优化学习体验的工具已经被广泛应用。它可以帮助用户自动登录、自动答题等,让用户在学习过程中可以更加专注于知识本身,提高效率,增加学习乐趣。 一、…

    编程 2025-04-29
  • lsw2u1:全能编程开发工程师的利器

    lsw2u1是一款多功能工具,可以为全能编程开发工程师提供便利的支持。本文将从多个方面对lsw2u1做详细阐述,并给出对应代码示例。 一、快速存取代码段 在日常开发中,我们总会使用…

    编程 2025-04-29
  • Python如何遍历字典中的key和value

    本文将详细讲解Python中如何遍历字典中的key和value,包括多种遍历方式以及在遍历过程中的一些应用场景。 一、遍历字典中的key和value 在Python中,字典是一种无…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29

发表回复

登录后才能评论