JavaScript: ottenere la dimensione e il numero di membri di un oggetto

Short link

JavaScript permette di conoscere il numero di elementi presenti in un array tramite la proprietà length, ma non ha una funzionalità analoga per gli oggetti. Possiamo quindi implementare questa funzionalità con una semplice tecnica. Vediamo quale.

La seguente funzione conteggia tutti i membri di un oggetto, ossia quelli direttamente accessibili tramite la catena dell'ereditarietà basata sull'oggetto prototype:


function objectSize(obj) {

  var objectSize = 0;
  
  for (key in obj){
    if (obj.hasOwnProperty(key)) {
      objectSize++;
    }
  }
  
  return objectSize;
}

Esempio d'uso:


var my = {
	a: 1,
	b: 'Test'
};

console.log(objectSize(my)); // 2

Il problema è che dall'iterazione vengono esclusi i membri privati dell'oggetto.

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.