JS中有5种遍历对象的方式,分别为for...in、Object.keys()、Object.getOwnPropertyNames()、Object.values()和Object.entries()。下面详细介绍这5种遍历方式的用法及示例。
for...in
for...in语句可用于遍历对象的属性。它比较慢,但用的相对频率最高,因为它适用于对象和数组(它们都被视为对象,因为JavaScript中万物皆是对象)。它遍历对象自身和继承的可枚举属性(但不包括Symbol 属性)。
示例:
const obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
输出结果:
obj.a = 1
obj.b = 2
obj.c = 3
Object.keys()
Object.keys()方法返回对象自身的所有可枚举属性的属性名组成的数组。即只返回对象自身的属性名,不包括继承的属性名和Symbol 属性。
示例:
const obj = {a: 1, b: 2, c: 3};
console.log(Object.keys(obj));
输出结果:
["a", "b", "c"]
Object.getOwnPropertyNames()
Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组。
示例:
const obj = Object.create({a: 'a'});
obj.b = 'b';
obj.c = 'c';
console.log(Object.getOwnPropertyNames(obj));
输出结果:
["b", "c"]
Object.values()
Object.values()方法返回对象自身的所有可枚举属性的属性值组成的数组。即只返回对象自身的属性值,不包括继承的属性值和Symbol 属性。
示例:
const obj = {a: 1, b: 2, c: 3};
console.log(Object.values(obj));
输出结果:
[1, 2, 3]
Object.entries()
Object.entries()方法返回对象自身的所有可枚举属性的属性名和属性值(键值对)组成的数组。
示例:
const obj = {a: 1, b: 2, c: 3};
console.log(Object.entries(obj));
输出结果:
[["a", 1], ["b", 2], ["c", 3]]
以上就是JS中5种遍历对象的方式的详细讲解及相应示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS 5种遍历对象的方式 - Python技术站