Привет.
Для больших объектов Object.keys(obj).length довольно медленный особенно в Chrome. Самый быстрый в FF.
Ну то есть у меня к примеру следующий код в Chrome выполняется больше полсекунды. Это уже многовато. Есть ли способы быстрее посчитать кол-во свойств у объекта?
var i,data={},count1,count2,t1,t2,str="";
for (i=1;i<=777777;i++)
data["id"+i]="string"+Math.random();
//1
t1 = performance.now();
count1=Object.keys(data).length;
t2 = performance.now();
//console.log("Время (1 вариант): "+(t2-t1).toFixed(4)+" мс\n\n");
str="Время (1 вариант): "+(t2-t1).toFixed(4)+" мс\n\n";
//2
t1 = performance.now();
count2=0;
for (i in data) {
count2++;
}
t2 = performance.now();
//console.log("Время (2 вариант): "+(t2-t1).toFixed(4)+" мс\n\n");
str+="Время (2 вариант): "+(t2-t1).toFixed(4)+" мс\n\n";
alert(str);