Есть ли повышение производительности для предопределения длины массива Javascript при нажатии элементов в этот массив?Предопределение длины массива в Javascript
Например, предположим, что вы делаете это:
var item1 = "apple",
item2 = "orange",
item3 = "sports car"; // Because I said so, that's why.
var myArray = []; // Empty array with initial length of 0
myArray.push(item1);
console.log(myArray.length) // 1
myArray.push(item2);
console.log(myArray.length) // 2
myArray.push(item3);
console.log(myArray.length) // 3
В приведенном выше коде длина туАггау пересчитывается на каждом толчке. В качестве альтернативы;
var item1 = "apple",
item2 = "orange",
item3 = "sports car";
var myArray = Array(3) // Assume we already know exactly how many items will be added
myArray[0] = item1;
console.log(myArray.length) // 3
myArray[1] = item2;
console.log(myArray.length) // 3
myArray[2] = item3;
console.log(myArray.length) // 3
Мой вопрос заключается в следующем, когда вы явно присвоить значение ранее существовавшего слот в массиве длина свойство этого массива еще переоценены. Если это не так, уменьшает ли этот процесс более быстрое распределение массива?
Само собой разумеется, что это скорее теоретическое упражнение, чем реальная проблема реального мира.
Некоторые люди делают тесты по очень близкому вопросу: http://stackoverflow.com/questions/1295584/most-efficient-way-to-create-a-zero-filled-javascript-array – Thilo
Матричные литералы быстрее, потому что вам не нужно вызывать конструктор (или запускать дополнительную функцию), но я не уверен в вашем конкретном вопросе. Я сомневаюсь, что это делает разницу. – elclanrs
Я бы предположил, что установка длины заранее может ускорить вставку позже. –