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.
Encontrei duas maneiras de encontrar o número de propriedades em um objeto. Eles são os seguintes:
- Usando o loop for
- 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.