js遍历对象方法总结

遍历对象
复制代码
let obj = {
    a:1,
    b:true,
    c:"hello"
}
复制代码

方法一:通过Object.keys(obj)遍历返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).

Object.keys(obj).forEach(function(key){
    console.log(key,obj[key]); 
})
复制代码

方法二:通过for..in.. 遍历循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).

for(let i in obj){
    console.log(i,obj[i]);
}
复制代码

方法三:通过Object.getOwnPropertyNames(obj)遍历返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).

Object.getOwnPropertyNames(obj).forEach( key => {
    console.log(key,obj[key]);
})
复制代码

方法四:通过Reflect.ownKeys()遍历返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

Reflect.ownKeys(obj).forEach( key => {
    console.log(key,obj[key]);
})
复制代码

转载于:https://juejin.im/post/5cb0a3bb6fb9a068691ca9ee

JavaScript中遍历对象属性的方法有多种。其中,常用的方法有: 1. 使用for...in循环:for...in可以遍历对象的可枚举属性,包括原型链上的属性。可以通过判断hasOwnProperty方法来过滤掉原型链上的属性。例如: ```javascript let obj = {type: 1, keyword: "js"}; for (let key in obj) { if (obj.hasOwnProperty(key)) { console.log(key, obj[key]); } } ``` 2. 使用Object.keys()方法:Object.keys()返回一个对象的可枚举属性组成的数组。可以遍历对象的可枚举属性,不包括原型链上的属性。例如: ```javascript let obj = {type: 1, keyword: "js"}; Object.keys(obj).forEach(key => console.log(key, obj[key])); ``` 3. 使用Object.getOwnPropertyNames()方法:Object.getOwnPropertyNames()返回一个对象的所有属性(包括可枚举和不可枚举属性)组成的数组。可以遍历对象的所有属性,不包括原型链上的属性。例如: ```javascript let obj = {type: 1, keyword: "js"}; Object.getOwnPropertyNames(obj).forEach(key => console.log(key, obj[key])); ``` 4. 使用Object.getOwnPropertySymbols()方法:Object.getOwnPropertySymbols()返回一个对象的所有Symbol属性组成的数组。只能遍历对象的Symbol属性,不包括其他非Symbol属性。例如: ```javascript let obj = {type: 1, keyword: "js"}; Object.getOwnPropertySymbols(obj).forEach(key => console.log(key, obj[key])); ``` 这些方法可以根据需要选择使用,以实现对对象属性的遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JS遍历对象属性的7种方式](https://blog.csdn.net/weixin_40895135/article/details/126584088)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [JS——遍历对象方法总结](https://blog.csdn.net/weixin_49392771/article/details/123354161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值