ES6一共有5种方法可以遍历对象的属性。

(1)for...in

for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)。

(2)Object.keys(obj)

Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。

(3)Object.getOwnPropertyNames(obj)

Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)。

(4)Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有Symbol属性。

(5)Reflect.ownKeys(obj)

Reflect.ownKeys返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol或字符串,也不管是否可枚举。

///Object.keys遍历属性/

let obj = {a:1, b:2,c:3};

Object.keys(obj); //["a", "b", "c"]返回对象属性数组

/Object.keys遍历value/

let obj = {a:1,b:2,c:function(){}};

Object.values(obj); //[1, 2, f]返回对象属性value值数组

///Object.entries遍历键值对

let obj = {a:1,b:2,c:function(){}};

Object.entries(obj); [['a',1],['b', 2], ['c',f]返回对象键值对数组

///Object.getOwnPropertyNames遍历属性(枚举+不可枚举)/

let obj = {a:1,b:2,c:function(){}};

Object.getOwnPropertyNames(obj); ["a", "b", "c"]返回对象包括不可枚举的属性数组

以上的5种方法遍历对象的属性,都遵守同样的属性遍历的次序规则。

首先遍历所有属性名为数值的属性,按照数字排序。

其次遍历所有属性名为字符串的属性,按照生成时间排序。

最后遍历所有属性名为Symbol值的属性,按照生成时间排序。

Reflect.ownKeys({ [Symbol()]:0, b:0, 10:0, 2:0, a:0 })

// ['2', '10', 'b', 'a', Symbol()]

上面代码中,Reflect.ownKeys方法返回一个数组,包含了参数对象的所有属性。这个数组的属性次序是这样的,首先是数值属性2和10,其次是字符串属性b和a,最后是Symbol属性。

es6 获取对象的所有值_ES6学习--对象属性的遍历相关推荐

  1. Java执行JavaScript代码:传参、获取变量、返回值、JSON对象

    脚本包 Java 脚本功能是在 javax.script 包中.这是一个比较小的,简单的API.脚本的出发点是 ScriptEngineManager 类,ScriptEngineManager是一个 ...

  2. 小程序修改数组中对象的某个值或者修改对象值

    小程序中获取当前data定义的值,用this.data.xxx setData的时候要修改的值是不需要加this.data.xxx的,直接xxx, 一般直接修改data的值直接修改,修改数组中对象的值 ...

  3. [复选框] 获取checkbox选中的值

    版权声明 本博文首发于: CSDN 瑾兰 (https://blog.csdn.net/qq_28296925) 博客. 请注意: 无需授权即可转载: 甚至无需保留以上版权声明- - 文章目录 一.情 ...

  4. js删除对象中所有值为null和undefined的属性

    和后台对接的时候的需求,他们不希望我传入那些值为null和undefined的属性,那我就先删除了吧. var obj = {aaa: 1,b: null,ccc: 'js删除对象中所有值为null的 ...

  5. C# CLR 聊聊对象的内存布局 一个空对象占用多少内存

    在 C# 中的对象大概可以分为三个不同的类型,包括值类型.引用类型和其他类型.本文主要讨论的是引用类型对内存空间的占用情况.在讨论开始之前我想问问大家,一个空的对象会占用多少内存空间?当然这个问题本身 ...

  6. java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值

    java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...

  7. ES6学习--对象属性的遍历

    ES6一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). (2)Object.keys(obj) Object. ...

  8. 使用变量的值作为JS对象的属性名,从而获取其对应的值

    使用变量的值作为JS对象的属性名,从而获取其对应的值 <script>var object={"a":1111,"b":2222};var para ...

  9. 有属性的自定义注解,如何获取到post请求中RequestBody中对象的一个属性值?

    1,写两个自定义注解,一个作用于方法的,一个作用于字段的 作用于方法的自定义注解代码: package com.youku.nintendo.annotation;import enums.Permi ...

最新文章

  1. Windows10远程访问Jupyter notebook
  2. Theano - 循环
  3. 【Paper】2013_Autonomous Cooperation Between UAV and UGV to Improve Navigation and Environmental
  4. java 文件编码 查询系统_javaweb垃圾分类查询系统、ssm+mysql
  5. 深入理解Async/Await
  6. pythonturtle画点的指令_简述python的turtle绘画命令及解释
  7. Sublime Text 3 无法输入中文解决方案
  8. 万年历c语言编程怎么做,用C语言如何编写“万年历”
  9. oracle 删除老存档,【转】oracle存档日志删除
  10. 计算机设备的存放,哪一种设备不能用于长期保存计算机数据
  11. (转)2020年网络安全产业图谱
  12. windows/Linux网络工具
  13. Tomcat9-默认登录名/密码
  14. CoDeSys开发经验总结
  15. 5种Alexa世界排名作弊方式
  16. java汉字转拼音以及五笔码工具
  17. 2022产业区块链数智经济发展论坛圆满举行
  18. 支付入门-易宝支付实践
  19. Ubuntu16.04LTS安装搜狗拼音
  20. Springboot列车调度信息系统的设计与实现4guf9计算机毕业设计-课程设计-期末作业-毕设程序代做

热门文章

  1. 《狙击手:幽灵战士》首部DLC
  2. PHP YII2 微信支付回调(H5)
  3. 亚马逊鲲鹏系统一款亚马逊买家号养号系统
  4. 规划和安装Exchange 2007
  5. incsgo唯一能立即取回的CSGO饰品皮肤开箱网站
  6. iPhone上用小影剪辑视频(iPhone读取文件)
  7. 微信公众平台对接C#-服务号开发配置
  8. SLMi333国内首款兼容光耦带DESAT保护功能的隔离式栅极驱动器
  9. R小型隔离变压器 小身板大能量
  10. java(10000以内的质数)