Object의 속성 개수 세기

한 객체가 몇 개의 Property를 가지고 있는지 알 수 있는 방법에 대해 알아보겠습니다.

var obj = {
  a: 1,
  b: 2,
  c: 3
};

먼저, for loop로 propery의 개수 만큼 반복문을 만들고, 반복문이 한 번씩 실행될 때마다 카운트를 할 수 있습니다.

function countNumberOfKeys(obj) {
  var sum = 0;
  for (let i in obj) {
    sum++;
  }
  return sum;
}

또는

function countNumberOfKeys(obj) {
  var sum = 0;
  for (let i in obj) {
    if (obj.hasOwnProperty(i)) {
      sum++;
    }
  }
  return sum;
}

배열에는 length 속성이 있지만, Object에는 length가 없습니다. 대신 Object.keys() method 사용할 수 있습니다. Object.keys()는 key값을 요소로 하는 배열을 반환합니다.

function countNumberOfKeys(obj) {
  var count = Object.keys(obj).length;
  return count;
}

Object.keys(obj).length => ['a', 'b', 'c']['a', 'b', 'c'].length => 3