全面解析JS对象遍历技巧
最编程
2024-01-14 22:12:02
...
在日常JS中用的比较多,总结参考一下,方便日常工作查看
对象遍历
for...in
循环遍历对象自身和继承的可枚举属性(不含Symbol属性)
let obj = {'0':'a','1':'b','2':'c','4':'e'};
Object.prototype['3']='d' //仅用来参考继承的属性可遍历出
Object.defineProperty(obj,'4',{enumerable:false}) //设置obj '4 '不可以被枚举
for(let key in obj){
console.log(key,obj[key]);
}
Object.keys+forEach
Object.keys返回键值数组,循环遍历对象自身(不含继承)的可枚举属性(不含Symbol属性)
let obj = {'0':'a','1':'b','2':'c','4':'e'};
Object.prototype['3']='d' //仅用来参考继承的属性可遍历出
Object.defineProperty(obj,'4',{enumerable:false}) //设置obj '4 '不可以被枚举
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
补充:Object.values 获取到的是obj中的值数组:['a','b','c']
Object.getOwnPropertyNames+forEach
Object.getOwnPropertyNames返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)
let obj = {'0':'a','1':'b','2':'c','4':'e'};
Object.prototype['3']='d' //仅用来参考继承的属性可遍历出
Object.defineProperty(obj,'4',{enumerable:false}) //设置obj '4 '不可以被枚举
Object.getOwnPropertyNames(obj).forEach(function(key){
console.log(key,obj[key]);
});
Reflect.ownKeys(obj)+forEach
Reflect.ownKeys返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举
let obj = {'0':'a','1':'b','2':'c','4':'e'};
Object.prototype['3']='d' //仅用来参考继承的属性可遍历出
Object.defineProperty(obj,'4',{enumerable:false}) //设置obj '4 '不可以被枚举
obj[Symbol("5")]='f'
Reflect.ownKeys(obj).forEach(function(key){
console.log(key,obj[key]);
});
上一篇: 搞定!JS里遍历对象属性的几种简单方法
下一篇: 搞定!JS中数组与对象的循环遍历解析
推荐阅读
-
Android-JS 交互 如何解析非 JSON(JS 对象、匿名回调)?
-
简易版小蝌蚪历险记:JS、CSS、HTML压缩与混淆全面解析
-
在 Node.js 中玩转HTML解析:实用技巧与最佳实践指南
-
全面解析P4语言编程技巧
-
JS技巧揭秘:强大无比的Hook函数 - 函数级钩子深入解析
-
如何在JavaScript中将字符串转化为日期:JS里的日期解析技巧
-
Next.js 里的SEO技巧全解析
-
使用Swing布局打造仿QQ登录界面2.0:基础组件设定、鼠标操作与事件处理技巧全面解析
-
全面解析Node.js ws模块中的WebSocket.Server API
-
合并并去除重复项的简单 JS 数组与数组对象技巧