ES6遍历方法,forEach、for...in,for..of

news2025/1/24 8:27:48

前言

js中遍历方法很多,在ES6新特性中出现了很多新的遍历方法,使遍历数组和对象更加方便,下面开始列举各种方法。

1.遍历对象

1.1.for…in…循环遍历对象自身和继承的可枚举的属性(不包括Symbol,因为symbol的实例是唯一的不可变的, 用于确保对象的属性不重复)

for…in是用于遍历对象和数组的方法

let obj = {
            a: 1,
            b: '猪八戒',
            c: [1, 2, 3, '孙悟空'],
            d: {
                name: '唐僧'
            }
        }
        //k代表对象的属性名,obj[k]就是属性值
        for (const k in obj) {
            console.log(k,obj[k]);
        }
        //这是懒得再写一个数组,直接调用对象中的数组结果为第二个图
        for (const k in obj.c) {
            console.log(k,obj.c[k]);
        }

结果图
在这里插入图片描述

1.2.Object.keys()遍历

返回值:返回一个数组
参数:需要遍历的元素
注意:返回值包括对象自身的(不包含所继承的)所有可枚举属性(不含Symbol属性),一般和其他循环搭配使用

  let obj = {
            a: 1,
            b: '猪八戒',
            c: [1, 2, 3, '孙悟空'],
            d: {
                name: '唐僧'
            }
        }
        //返回值只有一个含有属性名的数组
        console.log(Object.keys(obj));
        //搭配foreach就可以拿到所有的属性值
        //这里用了es6的箭头函数的语法糖
        //()=>{}当只有一个参数的时候省略()当执行语句只有一句省略{}
        Object.keys(obj).forEach(key=>
             console.log(key,obj[key])
        );

在这里插入图片描述

1.3Object.getOwnPropertyNames(obj)

返回值:返回一个数组
参数:需要遍历的元素
注意:返回值包括对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).

 let obj = {
            a: 1,
            b: '猪八戒',
            c: [1, 2, 3, '孙悟空'],
            d: {
                name: '唐僧'
            }
        }
        //返回一个只有属性名的数组
        console.log(Object.getOwnPropertyNames(obj));
        //这里用了es6的箭头函数的语法糖
        //()=>{}当只有一个参数的时候省略()当执行语句只有一句省略{}
        Object.getOwnPropertyNames(obj).forEach(key=>{
            console.log(key,obj[key]);
        })

在这里插入图片描述

1.4 Reflect.ownKeys()

返回值:返回一个数组
参数:需要遍历的元素
注意:返回值包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举

let obj = {
            a: 1,
            b: '猪八戒',
            c: [1, 2, 3, '孙悟空'],
            d: {
                name: '唐僧'
            }
        }
        console.log(Reflect.ownKeys(obj));
        //这里用了es6的箭头函数的语法糖
        //()=>{}当只有一个参数的时候省略()当执行语句只有一句省略{}
        Reflect.ownKeys(obj).forEach(key=>console.log(key,obj[key]))

在这里插入图片描述

2.遍历数组

2.1. forEach

 let arr=[1,3,4,'猪八戒',true]
       arr.forEach((value,index,array)=>{
        console.log('value是:',value);//value是属性值
        console.log('index是:',index);//index是元素小下标
        console.log('array是:',array);//遍历的哪一个元素
       })

在这里插入图片描述

2.2for…of

支持大多数数组,还支持大多数类数组对象,比如说获取很多的li元素也就是NodeList对象,也支持遍历字符串,原理是吧字符串视为Unicode字符来进行遍历

 let arr=[1,3,4,'猪八戒',true]
       for (const k of arr) {
        console.log(k);
       }

在这里插入图片描述

3.3 for…in

在遍历对象时第一个进行演示了这里不演示了

总结

ES6出现的这些新方法进行遍历对象、数组使我们获取元素属性更加的方便,简化代码量,更快速的获取到元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/407955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发入门与实战(数据、事件、条件)

作者 : SYFStrive 博客首页 : HomePage 📜: 微信小程序 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f4…

layui 的数据表单的defaultToolbar参数中筛选列,图标,打印,三个功能,调用单独拿出使用

项目场景: 参数之defaultToolbar: 在使用layui开发的过程中,常常会用到 数据表单 这一关键模块,在这里讲一下defaultToolbar:[filter,exports print]-------“头部工具栏右侧图标”,如何将这三个按钮调用出来&#x…

【vscode】vscode常用插件介绍

1、Angular Snippets(angular片段) 这个扩展为 TypeScript 和 HTML 添加了 Angular 的代码片段。 2、Auto Close Tag(自动闭合标签) 自动添加 HTML/XML 关闭标记。 3、Auto Rename Tag(自动重命名标签) 自…

Three.js基础入门系列(九)--导入3D模型

先来学习今天的知识——Three.js导入3D模型 复杂的3D模型(比如制作一个飞机模型)一般都是用第三方建模工具生成,然后加载到Three.js中。 01 常用建模制作工具 3Dmax 链接地址:https://www.autodesk.com.cn/products/3ds-max/over…

启动vue-element-admin 安装npm install报错npm ERR! code 128npm ERR! An unknown git error occurre

使用vue-element-admin前端项目,前提是有nodejs环境,对于此环境的安装可以参考网上的博客。此博客用于记录启动项目以及遇到的问题、并解决问题的过程。1、介绍vue-element-admin是基于element-ui 的一套后台管理系统集成方案 。功能:https:/…

Vue基础教程(下篇)

😊作者简介:大家好,我是是你的大头呢,一名大三学生,考研备考中。让我们一起加油,一起努力! 🧑‍💻博客主页:是你的大头呢 🥰欢迎关注&#x1f38a…

javascript 中搜索数组的四种方法

前端经常要通过 javaScript 来处理数组中的数据,其中就包括检查数组中是否包含满足特定搜索条件的单个或者多个值,这就需要我们关于用于确认的布尔值、数组中值得位置索引或包含所有搜索结果的单独数组等。 在 ECMAScript6 之前,最常用的方法…

Vue中 this.$set的用法

一、this.$set能够实现什么功能 官方解释:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue无法探测普通的新增属性 (比如 this.myObject.newProperty …

pdf在线预览 pdf.js的使用

1.官网:https://mozilla.github.io/pdf.js/ 2、使用方法 1) 通过官网,下载pdfJs插件包,放至项目中; window.open("./js/pdfJS/web/viewer.html?fileAngularJS权威指南.pdf" );2)将下载的pdfJS…

uniapp封装axios?大可不必那么麻烦。

最近群里的一个小明同学问 uniapp可以使用axios请求吗?我当时就一愣 反问为什么要使用axios,是 uni.request 不香了吗? 小明:因为axios可以像vue的项目一样,在request里面封装巴拉巴拉一堆。 我:那uni.re…

微信小程序开发使用onreachBottom实现页面触底加载及分页

目录 一 简要介绍一下onreachBottom事件 二 实例展示 三 遇到的一些问题 一 简要介绍一下onreachBottom事件 onreachBottom和onLoad以及onShow一样,都属于小程序的生命周期事件,作用就是在页面下拉到底部时触发这个事件,一般适用于数据比较…

一次跨域的坑Faild to load response data: No resourse with given identifier found

有一个导出接口,前后端都没有动过,之前也测试过没有问题。上到测试环境后,测试环境加了证书,报错了。 先是后端小朋友和我说了这个问题: 浏览器控制台打印信息(聊天记录中那张图):然后我问他操作了哪个页面…

vue3.0教程——搭建Vue脚手架【简化版】

目录 哈喽,大家好丫,你们的小郭子又来啦 ~ 一、环境要求 (1)node安装(前端开发环境) (2)vue-cli脚手架安装 二、安装依赖 (1)使用命令行安装以下依赖 &a…

Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理

Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理 目录 Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理 一、简单介绍 二、安装和使用 三、效果图 四、vue-seamless-scroll 点击事件…

(网页开发/前端)配置VsCode,让您拥有更舒适的开发环境

vscode,微软旗下的一款强大的IDE集成开发环境,现在,越来越多的网页开发人员选择使用vscode来敲代码。 但是,在不添加任何扩展的vscode中,想要享受“丝滑”的开发体验是比较困难的。所以,接下来,…

js从地址栏获取参数

一、过程分四步: 1.获取地址栏; var loclocation.href; 2.获取地址栏的长度 var n1loc.length; 3.获取地址栏中第一个等号的位置; var n2loc.indexOf(); 4.以等号位置,截取后面的内容; var strloc.slice(n2…

Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。 其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。 语法 Object.entries(obj) 参数 obj:可以返回其可枚举属性…

VS2022(Visual Studio)发布ASP.NET Core Web API应用到Web服务器(IIS)

概述 写完代码后,最常用、简单的发布方式,就是将应用发布到文件夹,然后将publish文件夹复制到要部署的机器上(本地、局域网服务器、云服务器等)。 但是在实际工作中,可能会遇到需要频繁地发布&#xff0c…

vue--后台管理系统问题和功能实现思路集锦

目录 一、动态菜单 1、问题:点击菜单,其他菜单都会打开,且选中某个菜单,其他菜单都会选中 2、问题:home页面代码内动态菜单数据获取的位置 二、动态路由 1、问题:刷新home页面后,页面报错&…

微信小程序开发(遇到的报错和注释)

一开始验证文章出错了,一直运行不起来,取消设置,可以正常调用。 页面小程序窗口组件部分:navigationbar导航栏区域,background背景区域(默认不可见,下拉才显示)、页面的主题区域&am…