Ir para o conteúdo
Como contar o número de propriedades do objeto JavaScript

Como contar o número de propriedades do objeto JavaScript

Ao trabalhar com JavaScript, me deparo com um requisito para contar várias propriedades em um objeto JavaScript.

3min read

Encontrei duas maneiras de encontrar o número de propriedades em um objeto. Eles são os seguintes:

  1. Usando o loop for
  2. Using Object.keys

Considere um objeto, "gato", conforme demonstrado abaixo:

var cat = {
    name: 'foo',
    age: 9
}

Você pode encontrar várias propriedades iterando em um loop for e um contador de atualização, conforme mostrado na listagem abaixo:

let count = 0;
for (var c in cat) {
    count = count + 1;
}
console.log(count);// 2

O código acima imprimirá "2" como saída.

A abordagem acima não apenas imprime as próprias propriedades enumeráveis do objeto, mas também imprime propriedades de objetos para verificar se ele está vinculado.  Para entendê-lo melhor, vamos considerar listar:

var animal = { 
    canRun: true
}
 
var cat = {
    name: 'foo',
    age: 9
}
 
cat.__proto__ = animal;

Existem dois objetos, gato e animal, e o objeto gato está vinculado a um objeto animal usando __proto__ propriedade.  Agora, quando você usa o loop for para iterar e contar várias propriedades, ele também contará as propriedades enumeráveis do objeto animal. Portanto, a listagem de código abaixo imprimirá "3".

var animal = {
    canRun: true
}
 
var cat = {
    name: 'foo',
    age: 9
}
 
cat.__proto__ = animal;
 
let count = 0;
for (var c in cat) {
    count = count + 1;
}
console.log(count);// 3

O loop for do JavaScript iterará todas as propriedades vinculadas do objeto.

Para contar as próprias propriedades enumeráveis do objeto, você pode considerar o uso de outra abordagem,Object.keys(), que enumera apenas as próprias propriedades enumeráveis do objeto. Ele não enumera as propriedades vinculadas do objeto.

Seguindo em frente, vamos considerar novamente o objeto cat que está vinculado ao objeto animal e contar o número de propriedades usando Object.keys:

var animal = {
    canRun: true
}
 
var cat = {
    name: 'foo',
    age: 9
}
 
cat.__proto__ = animal;
 
var count = Object.keys(cat).length;
console.log(count);

Agora você receberá "2" impresso como saída.

Object.keys enumera apenas as próprias propriedades enumeráveis do objeto.

Se a propriedade enumerable do objeto for definida como false, ela não será membro da matriz Object.keys.  Vamos considerar novamente o objeto cat e definir sua propriedade name enumerable como false.

var cat = {
    name: 'foo',
    age: 9
}
 
Object.defineProperty(cat, 'name', { enumerable: false });

Agora, quando você usar Object.keys para localizar várias propriedades, ele contará apenas uma.

var count = Object.keys(cat).length;
console.log(count);  // print 1

Para encerrar, essas são as duas maneiras que você pode usar para localizar várias propriedades em um objeto JavaScript.

Se você gostou deste post, por favor, compartilhe-o. Além disso, se você não tiver verificado Infragistics Ignite UI for Angular componentes, certifique-se de fazê-lo! Temos 30+ componentes de Angular baseados em material para ajudá-lo a codificar aplicativos da web rápidos com mais rapidez.

Solicite uma demonstração