Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2015, 10:11
Интересующийся
Отправить личное сообщение для iwtn Посмотреть профиль Найти все сообщения от iwtn
 
Регистрация: 24.12.2013
Сообщений: 16

Object.keys(obj).length медленный. Есть ли способы быстрее?
Привет.
Для больших объектов 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);
Ответить с цитированием