JavaScript中遍历对象

发布于:2024-04-28 ⋅ 阅读:(18) ⋅ 点赞:(0)

JavaScript中遍历对象的常用方法有以下几种

1. for…in循环:

这是最基本的遍历方式,可以遍历对象自身的和继承的可枚举属性。

let obj = {a: 1, b: 2};
for(let prop in obj) {
    if(obj.hasOwnProperty(prop)) {
        console.log(prop + ": " + obj[prop]);
    }
}

2. Object.keys():

返回一个数组,包含对象自身的所有可枚举属性的属性名。

let obj = {a: 1, b: 2};
Object.keys(obj).forEach(key => {
    console.log(key + ": " + obj[key]);
});

3. Object.values():

返回一个数组,包含对象自身的所有可枚举属性的属性值。

let obj = {a: 1, b: 2};
Object.values(obj).forEach(value => {
    console.log(value);
});

4. Object.entries():

返回一个数组的数组,每个内部数组包含一个属性名和相应的属性值。

let obj = {a: 1, b: 2};
Object.entries(obj).forEach(([key, value]) => {
    console.log(key + ": " + value);
});

5. Object.getOwnPropertyNames()

返回一个数组,包含对象自身的所有属性名(无论是否可枚举)。

let obj = Object.create({x: 100}); // 假设obj有一些继承属性
obj.a = 1;
Object.getOwnPropertyNames(obj).forEach(key => {
    console.log(key + ": " + obj[key]);
});

6. Object.getOwnPropertySymbols()

如果对象有使用Symbol作为键的属性,此方法会返回这些Symbol属性名的数组。

let obj = {};
let sym = Symbol();
obj[sym] = 'symbolValue';
Object.getOwnPropertySymbols(obj).forEach(sym => {
    console.log(sym + ": " + obj[sym]);
});

7. Reflect.ownKeys()

返回一个数组,包含了对象自身的所有键,无论键的类型是字符串、Symbol还是其他可迭代类型,并且不管是否可枚举。

let obj = {a: 1, [Symbol('b')]: 2};
Reflect.ownKeys(obj).forEach(key => {
    console.log(key + ": " + obj[key]);
});

网站公告

今日签到

点亮在社区的每一天
去签到