在JavaScript中,获取对象的键值对有多种方法,以下是一些常用的方法:
Object.keys()
Object.keys()
方法返回一个包含对象自身所有可枚举属性名称的数组。
const obj = { a: 1, b: 2, c: 3 };
const keys = Object.keys(obj); // ['a', 'b', 'c']
Object.values()
Object.values()
方法返回一个包含对象自身所有可枚举属性值的数组。
const obj = { a: 1, b: 2, c: 3 };
const values = Object.values(obj); // [1, 2, 3]
Object.entries()
Object.entries()
方法返回一个包含对象自身所有可枚举属性键值对的二维数组。
const obj = { a: 1, b: 2, c: 3 };
const entries = Object.entries(obj); // [['a', 1], ['b', 2], ['c', 3]]
for...in
循环for...in
循环可以遍历对象的所有可枚举属性,包括继承的属性(如果不使用hasOwnProperty
过滤)。
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
if (obj.hasOwnProperty(key)) { // 过滤继承的属性
console.log(`${key}: ${obj[key]}`);
}
}
Object.getOwnPropertyNames()
Object.getOwnPropertyNames()
方法返回一个包含对象自身所有属性(包括不可枚举属性)名称的数组。
const obj = Object.create({}, {
a: { value: 1, enumerable: true },
b: { value: 2, enumerable: false }
});
const propNames = Object.getOwnPropertyNames(obj); // ['a', 'b']
for...in
循环会遍历对象及其原型链上的所有可枚举属性,因此通常需要使用hasOwnProperty
方法来过滤掉继承的属性。Object.keys()
和Object.values()
只返回对象自身的可枚举属性,不包括继承的属性。Object.entries()
返回的是一个二维数组,每个子数组包含一个键值对。通过这些方法,你可以灵活地获取和处理JavaScript对象的键值对。
领取专属 10元无门槛券
手把手带您无忧上云