JS 实现获取对象属性个数的方法小结
在 JavaScript 中,我们可以通过不同的方法获取对象的属性个数,下面是几种常见方法的介绍以及示例说明。
方法一:Object.keys()
Object.keys()
方法返回一个由指定对象自身的属性名组成的数组,我们可以通过获取该数组的长度来获取到对象的属性个数。
const obj = {
name: 'John',
age: 25,
address: 'New York'
};
const length = Object.keys(obj).length;
console.log(length); // Output: 3
方法二:for...in 循环
for...in
循环可以用于遍历一个对象的所有属性,我们可以在循环内部计算属性的个数。
const obj = {
name: 'John',
age: 25,
address: 'New York'
};
let count = 0;
for (const prop in obj) {
if (Object.prototype.hasOwnProperty.call(obj, prop)) {
count++;
}
}
console.log(count); // Output: 3
注意:我们需要使用 Object.prototype.hasOwnProperty.call()
方法来检查对象是否具有指定的属性,以避免从对象的原型继承属性。
方法三:Object.getOwnPropertyNames()
Object.getOwnPropertyNames()
方法返回指定对象自身所有属性的属性名组成的数组,其中包括不可枚举属性,我们也可以通过获取该数组的长度来获取到对象的属性个数。
const obj = {
name: 'John',
age: 25,
address: 'New York'
};
const length = Object.getOwnPropertyNames(obj).length;
console.log(length); // Output: 3
示例说明
假设我们有以下对象:
const person = {
name: {
first: 'John',
last: 'Doe'
},
age: 25,
gender: 'male',
address: {
city: 'New York',
state: 'NY',
zip: '10001'
}
};
我们可以使用上述三种方法中的任意一种方法来获取该对象的属性个数:
// 方法一:Object.keys()
const length1 = Object.keys(person).length;
console.log(length1); // Output: 4
// 方法二:for...in 循环
let count2 = 0;
for (const prop in person) {
if (Object.prototype.hasOwnProperty.call(person, prop)) {
count2++;
}
}
console.log(count2); // Output: 4
// 方法三:Object.getOwnPropertyNames()
const length3 = Object.getOwnPropertyNames(person).length;
console.log(length3); // Output: 4
如上述示例所示,我们可以通过任意一种方法获取对象的属性个数,根据实际情况选择适合的方法即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS 实现获取对象属性个数的方法小结 - Python技术站