Как узнать на javascript размер массива

Для вычисления на javascript размера массива объектов используется свойство массива length.
var arr = ["first", "second"]; console.log(arr.length); // 2
Массивы в javascript могут иметь пропуски в индексах. Например
var arr = []; arr[0] = "first"; arr[4] = "second";
Свойство length возвращает максимальный индекс массива + 1. Т.е. в приведенном примере length = 5.
Вычисление на javascript количества элементов в массиве
Если нужно посчитать количество реально существующих элементов массива, нужно воспользоваться следующей функцией:
Array.prototype.count = function(){
var result = 0;
for(var i = 0; i < this.length; i++)
if (this[i] != undefined)
result++;
return result;
}
Пример использования
var arr = []; arr[0] = "first"; arr[4] = "second"; console.log(arr.count()); //2
Так же в свойство length можно присваивать значение. Это позволяет уменьшить длину существующего массива.
var arr = ["first", "second", "third"]; arr.length = 2; console.log(arr); // ["first", "second"]
Вычисление на javascript размера массива в байтах
Массивы являются обычными объектами, так что вычисление размера массива в байтах ничем не отличается от вычисления размера любого другого объекта. К сожалению, javascript не предоставляет API для вычисления размера, так что придется считать самостоятельно. Делается это следующим образом: обходим все свойства объекта, если свойство примитивного типа — добавляем к общему результату размер экземпляра этого типа, если в свойстве лежит объект — рекурсивно считаем его размер.
function sizeOf(obj) {
var bytes = 0;
if(obj !== null && obj !== undefined) {
switch(typeof obj) {
case 'number':
bytes += 8;
break;
case 'string':
bytes += obj.length * 2;
break;
case 'boolean':
bytes += 4;
break;
case 'object':
for(var key in obj) {
bytes += sizeOf(obj[key]);
}
break;
}
}
return bytes;
};
Метод не точный и имеющий множество проблем — например есть вероятность уйти в бесконечный цикл.