JavaScript에서 객체(Object)의 크기를 구한다는 것은, 해당 객체가 가지고 있는 속성(property)의 개수를 세는 것을 의미합니다. 배열이라면 length 속성으로 간단히 확인할 수 있지만, 일반 객체나 JSON 객체에는 이러한 내장 속성이 없기 때문에 몇 가지 방법을 활용해야 합니다.
예제 객체 준비
먼저 다음과 같은 객체가 있다고 가정해 보겠습니다.
const obj = {
name: "Ramesh",
age: 34,
occupation: "HR Manager",
address: "Tilak Nagar, New Delhi",
experience: 13
};이 객체에는 총 5개의 속성이 있습니다. 우리는 JavaScript 함수를 작성하여 객체의 크기, 즉 속성의 개수를 계산해야 합니다.
방법 1: for...in 루프와 hasOwnProperty() 사용
전통적인 방식으로는 for...in 루프를 사용하여 객체의 모든 키를 순회하고, hasOwnProperty() 메서드로 상속된 속성을 제외한 자체 속성만 카운트하는 방법이 있습니다.
const obj = {
name: "Ramesh",
age: 34,
occupation: "HR Manager",
address: "Tilak Nagar, New Delhi",
experience: 13
};
Object.prototype.size = function(obj) {
let size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
size++
};
};
return size;
};
const size = Object.size(obj);
console.log(size);출력 결과
콘솔에 출력되는 결과는 다음과 같습니다.
5
방법 2: Object.keys() 사용 (권장)
현대적인 JavaScript(ES5 이상) 환경에서는 Object.keys() 메서드를 사용하는 것이 가장 간결하고 안전한 방법입니다. 이 메서드는 객체의 자체 열거 가능한 속성 이름들을 배열로 반환하므로, 배열의 length를 확인하면 됩니다.
const size = Object.keys(obj).length; console.log(size); // 5
이 방법은 프로토타입을 직접 수정하지 않으므로 코드 충돌 위험이 없고, 가독성도 뛰어납니다. 특별한 이유가 없다면 Object.keys().length 방식을 사용하는 것을 권장합니다.