Saltar al contenido
Cómo contar el número de propiedades del objeto JavaScript

Cómo contar el número de propiedades del objeto JavaScript

Al trabajar con JavaScript, me encuentro con la necesidad de contar una serie de propiedades en un objeto JavaScript.

3min read

Encontré dos formas de encontrar el número de propiedades en un objeto. Son los siguientes:

  1. Uso del bucle for
  2. Using Object.keys

Considere un objeto, "gato", como se muestra a continuación:

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

Puede encontrar una serie de propiedades iterando en un bucle for y un contador de actualización, como se muestra en la siguiente lista:

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

El código anterior imprimirá "2" como salida.

El enfoque anterior no solo imprime las propiedades enumerables propias del objeto, sino que también imprime las propiedades de los objetos para que esté vinculado.  Para entenderlo mejor, consideremos enumerar:

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

Hay dos objetos, cat y animal, y el objeto cat está vinculado a un objeto animal mediante __proto__ propiedad.  Ahora, cuando usa el bucle for para iterar y contar una serie de propiedades, también contará las propiedades enumerables del objeto animal. Por lo tanto, la lista de códigos a continuación 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

JavaScript for iterará todas las propiedades vinculadas del objeto.

Para contar las propiedades enumerables propias del objeto, puede considerar el uso de otro enfoque, Object.keys(), que solo enumera las propiedades enumerables propias del objeto. No enumera las propiedades vinculadas del objeto.

Avanzando, consideremos nuevamente el objeto cat que está vinculado al objeto animal y contemos el número de propiedades 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);

Ahora obtendrá "2" impreso como salida.

Object.keys solo enumera las propiedades enumerables propias del objeto.

Si la propiedad enumerable del objeto se establece en false, no es miembro de la matriz Object.keys.  Consideremos de nuevo el objeto cat y establezcamos su propiedad name enumerable en false.

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

Ahora, cuando use Object.keys para encontrar varias propiedades, solo contará una.

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

Para terminar, estas son las dos formas que puede usar para encontrar una serie de propiedades en un objeto JavaScript.

Si te gusta esta publicación, compártela. Además, si no ha revisado Infragistics Ignite UI for Angular componentes, ¡asegúrese de hacerlo! Tenemos 30+ componentes de Angular basados en material para ayudarlo a codificar aplicaciones web rápidas más rápido.

Solicitar una demostración