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方法返回一个数组,包含了参数对象的所有属性。这个数组的属性次序是这样的,首先是数值属性210,其次是字符串属性ba,最后是Symbol属性。

转载于:https://www.cnblogs.com/1571523732-qq/p/10076385.html

ES6学习--对象属性的遍历相关推荐

  1. es6 获取对象的所有值_ES6学习--对象属性的遍历

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

  2. es6根据对象属性获取到当前值的下标

    前言: es6根据对象属性获取到当前值的下标. 实现效果: var index = 数组.findIndex(item=> item.value=== 0);//item.value=== 0是 ...

  3. php js 循环对象属性,js 遍历对象的属性的代码_javascript技巧

    如: Function.prototype.addMethod=function(methodName,func){ if(!this.prototype[methodName]){ this.pro ...

  4. es6 作为对象属性的Generator函数

    作为对象属性的Generator函数 如果一个对象的属性是 Generator函数,可以简写成下面的形式. let obj = { * myGeneratorMethod() { ··· } }; 上 ...

  5. es6对象属性的遍历

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

  6. ECMAScript5之JSON对象属性的遍历顺序

    测试浏览器 Chrome.Safari 一 键可以用parseInt解析成整数的,按数值升序顺序. var intObj = {'3.3' : 3.3,'2' : 222,'1' :111 } for ...

  7. 遍历对象属性_细说JS遍历对象属性的N种方法

    本人详细介绍了JS遍历对象N种方法,欢迎关注收藏. 遍历对象属性有五种方法,下图为一个场景对比图. 可以注意到两点: 只有for ... in 才可以遍历原型链属性,且只能遍历可枚举属性. Objec ...

  8. ES6学习笔记(五):轻松了解ES6的内置扩展对象

    前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...

  9. es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...

    js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便. 比如: 1.把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2.for i ...

最新文章

  1. 面对5G,华为、中兴及三大运营商怎么布局?
  2. vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt
  3. 排位重要还是媳妇儿重要?
  4. centos中配置java视频教程_安装CentOs
  5. 计算机软考中集成系统,软考中级系统集成项目管理工程师有哪些作用?
  6. python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!
  7. Meta最快明年推出智能手表 挑战下一代Apple Watch
  8. 基于CAS实现SSO单点登录
  9. 算法复习——割点(洛谷3388)
  10. 无锁并发框架Disruptor学习入门
  11. sklearn决策树特征权重计算方法
  12. php使用ffmpeg将音乐wav格式转为mp3格式
  13. logstash 配置
  14. 利用日志管理,溯源追踪解决安全问题
  15. 计算机视觉主要完成哪些任务
  16. Elastic-Job原理--任务失败转移(五)
  17. 乔布斯与Google鲜为人知的故事
  18. 蓦然回首,十余年的程序员生涯最后就只剩下了这些!希望我犯过的错误你不要再犯!
  19. vscode在html看到图片的插件_PPT做得又慢又丑?低调分享3款PPT辅助插件,轻松制作炫酷PPT...
  20. 服务器怎么安装php文档,php在云服务器端的安装教程

热门文章

  1. Uboot初次编译、烧写、启动(启动界面log简析)
  2. php str cmp,php中整数的strcmp equivalent(intcmp)
  3. 分组查询 group by 子句及order by子句
  4. 操作系统:Win10的沙盒是什么,如何使用,看完你就懂了!
  5. decimal转为string sql_SQL注入详解|OWASP Top 10安全风险实践(二)
  6. bootstrap 合并菜单_Bootstrap与tab组合,切换菜单实例
  7. 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
  8. “这张图告诉你什么?”
  9. 教师节,你记忆中老师说过印象最深的是什么话?(抽奖)
  10. FPGA设计者的5项基本功