Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 개체의 속성 수를 계산하는 방법

두 가지 방법을 사용하여 JavaScript 개체의 속성 수를 계산하는 방법을 알아보세요.

JavaScript 개체 속성의 수를 계산하려면 다음 중 하나를 사용할 수 있습니다.

  • for 루프
  • 또는 Object.keys() 방법.

둘 다 살펴보겠습니다!

for 루프로 개체 속성 계산

다음은 dog라는 JavaScript 객체입니다. :

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

dog의 개체 속성 수를 계산하려면 , 먼저 count라는 변수를 선언합시다. 시작 값을 0으로 지정합니다. :

let count = 0

이제 dog를 반복해야 합니다. 개체 및 우리가 발견한 각 속성에 대해 count에 하나(+ 1)를 추가합니다. 변수:

for (let properties in dog) {
  count = count + 1
}

이제 console.log()를 사용하여 결과를 인쇄해 보십시오. :

console.log(count)
// Result: 4

코드를 올바르게 작성했다면 4를 얻어야 합니다. .

Object.keys()로 개체 속성 계산

JavaScript의 Object.keys()를 사용할 수도 있습니다. 모든 열거 가능한을 계산하는 방법 개체의 속성(자세한 내용은 잠시 후에 설명)

dog를 재사용하자 이전의 개체이지만 이제 dog Object.keys()에 대한 개체 length로 길이를 계산합니다. 속성:

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

let count = Object.keys(dog).length

console.log(count)
// Result: 4

보시다시피 결과는 동일합니다. 아니면?

예 및 아니오. 상황에 따라 다릅니다.

대체 Object.keys()

for 사용의 차이점 루프 및 Object.keys() 입니다:

  • for 루프는 개체의 두 속성을 모두 계산합니다(여기서는 dog ) 및 외부에 있는 개체에 연결될 수 있는 모든 속성
  • 기본적으로 Object.keys() 메서드는 연결된 속성이 아닌 개체의 (자신의) 열거 속성만 계산(열거)합니다.

열거 카운트의 다른 단어입니다.

"연결된 속성"이란 무엇을 의미합니까?

동일한 Object.keys()를 사용하겠습니다. 이전의 예이지만 이번에는 링크합니다. dog animal이라는 개체에 대한 개체 _proto_를 사용하여 속성:

// New object
let animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

var count = Object.keys(dog).length
console.log(count)
// Result: 4

dog 속성의 총 개수가 4인 이유는 무엇입니까? 및 animal 5이고 방금 연결하여 세었습니까?

Object.keys()를 사용하기 때문에 연결된 속성이 아닌 자체(열거 가능한) 속성만 계산합니다. 따라서 fourLegs animal의 속성 개체는 위의 예에서 계산되지 않습니다.

이제 다른 예를 시도해 보겠습니다. 하지만 이번에는 for를 사용합니다. 속성을 계산하는 루프:

const animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

let count = 0

for (properties in dog) {
  count = count + 1
}

console.log(count)
// Result: 5

이제 Object.keys()와 달리 5가지 속성을 모두 가져옵니다. for를 사용할 때 횟수를 반복합니다. 연결된을 포함한 개체의 속성 개체 속성.

보시다시피 어떤 접근 방식을 사용하느냐가 중요합니다.

요약:

  • 객체의 속성 수를 계산하는 방법에는 두 가지가 있습니다. for를 사용할 수 있습니다. 루프 또는 Object.keys() 방법.
  • for 사용 속성 개수에 연결된 개체 속성을 포함하려면 루프를 사용하세요.
  • Object.keys() 사용 열거 가능한 속성(객체 자체)만 계산하려는 경우.