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.