ES6学习--对象属性的遍历
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属性。
转载于:https://www.cnblogs.com/1571523732-qq/p/10076385.html
ES6学习--对象属性的遍历相关推荐
- es6 获取对象的所有值_ES6学习--对象属性的遍历
ES6一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). (2)Object.keys(obj) Object. ...
- es6根据对象属性获取到当前值的下标
前言: es6根据对象属性获取到当前值的下标. 实现效果: var index = 数组.findIndex(item=> item.value=== 0);//item.value=== 0是 ...
- php js 循环对象属性,js 遍历对象的属性的代码_javascript技巧
如: Function.prototype.addMethod=function(methodName,func){ if(!this.prototype[methodName]){ this.pro ...
- es6 作为对象属性的Generator函数
作为对象属性的Generator函数 如果一个对象的属性是 Generator函数,可以简写成下面的形式. let obj = { * myGeneratorMethod() { ··· } }; 上 ...
- es6对象属性的遍历
ES6一共有5种方法可以遍历对象的属性. (1)for...in for...in循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). (2)Object.keys(obj) Object. ...
- ECMAScript5之JSON对象属性的遍历顺序
测试浏览器 Chrome.Safari 一 键可以用parseInt解析成整数的,按数值升序顺序. var intObj = {'3.3' : 3.3,'2' : 222,'1' :111 } for ...
- 遍历对象属性_细说JS遍历对象属性的N种方法
本人详细介绍了JS遍历对象N种方法,欢迎关注收藏. 遍历对象属性有五种方法,下图为一个场景对比图. 可以注意到两点: 只有for ... in 才可以遍历原型链属性,且只能遍历可枚举属性. Objec ...
- ES6学习笔记(五):轻松了解ES6的内置扩展对象
前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...
- es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便. 比如: 1.把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2.for i ...
最新文章
- 面对5G,华为、中兴及三大运营商怎么布局?
- vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt
- 排位重要还是媳妇儿重要?
- centos中配置java视频教程_安装CentOs
- 计算机软考中集成系统,软考中级系统集成项目管理工程师有哪些作用?
- python自动生成采集规则_【仅供学习参考】Python多线程池采集小说,超简单!
- Meta最快明年推出智能手表 挑战下一代Apple Watch
- 基于CAS实现SSO单点登录
- 算法复习——割点(洛谷3388)
- 无锁并发框架Disruptor学习入门
- sklearn决策树特征权重计算方法
- php使用ffmpeg将音乐wav格式转为mp3格式
- logstash 配置
- 利用日志管理,溯源追踪解决安全问题
- 计算机视觉主要完成哪些任务
- Elastic-Job原理--任务失败转移(五)
- 乔布斯与Google鲜为人知的故事
- 蓦然回首,十余年的程序员生涯最后就只剩下了这些!希望我犯过的错误你不要再犯!
- vscode在html看到图片的插件_PPT做得又慢又丑?低调分享3款PPT辅助插件,轻松制作炫酷PPT...
- 服务器怎么安装php文档,php在云服务器端的安装教程
热门文章
- Uboot初次编译、烧写、启动(启动界面log简析)
- php str cmp,php中整数的strcmp equivalent(intcmp)
- 分组查询 group by 子句及order by子句
- 操作系统:Win10的沙盒是什么,如何使用,看完你就懂了!
- decimal转为string sql_SQL注入详解|OWASP Top 10安全风险实践(二)
- bootstrap 合并菜单_Bootstrap与tab组合,切换菜单实例
- 页面滚动时触发图片逐帧播放_如何在滚动效果上创建逐帧运动图像
- “这张图告诉你什么?”
- 教师节,你记忆中老师说过印象最深的是什么话?(抽奖)
- FPGA设计者的5项基本功