Длина массива Vs Число значений в массиве


2 принят

Единственное, что отличает массив от простого объекта, это его lengthсвойство и то, как он себя ведет (и, конечно, несколько конкретных методов массива). lengthЗначение просто возрастает с увеличением некоторых операций, как установка числового свойства или pushИНГ новый элемент. Это все в двух словах. Массив фактически не содержит 100000 элементов, когда вы устанавливаете свойство 100000в значение, все, что происходит, заключается в том, что вы устанавливаете одно свойство, и значение lengthкорректируется соответствующим образом.

Таким образом, нет, это не будет иметь большого влияния на производительность, если только кто-то не выполняет итерацию через массив for (let i = 0; i < arr.length; i++).


-1

Вы можете создать массив с длиной, заданной вашим плагином, и работать локально с объектом для ограничения итераций. После того, как вся ваша обработка была применена, вы копируете значения в массив и отправляете их в функцию плагина.

Хранить массив с требуемой длиной в виде буфера

var buffer = new Array(20000);

Внутренняя работа с объектом

var data = {};

Назначение значений объекту

data[10001] = "foo";

После того как преобразования или обработка данных были применены к объекту, скопируйте данные в буфер

for (key in data){
    buffer[key] = data[key];
}

Отправьте буфер в плагин. И при необходимости очистить данные.

Поступая таким образом, вы не будете перебирать больше, чем фактические данные, которые вы обработали.

JavaScript, массивы,

javascript,arrays,

0

Ответов: 2


2 принят

Единственное, что отличает массив от простого объекта, это его lengthсвойство и то, как он себя ведет (и, конечно, несколько конкретных методов массива). lengthЗначение просто возрастает с увеличением некоторых операций, как установка числового свойства или pushИНГ новый элемент. Это все в двух словах. Массив фактически не содержит 100000 элементов, когда вы устанавливаете свойство 100000в значение, все, что происходит, заключается в том, что вы устанавливаете одно свойство, и значение lengthкорректируется соответствующим образом.

Таким образом, нет, это не будет иметь большого влияния на производительность, если только кто-то не выполняет итерацию через массив for (let i = 0; i < arr.length; i++).


-1

Вы можете создать массив с длиной, заданной вашим плагином, и работать локально с объектом для ограничения итераций. После того, как вся ваша обработка была применена, вы копируете значения в массив и отправляете их в функцию плагина.

Хранить массив с требуемой длиной в виде буфера

var buffer = new Array(20000);

Внутренняя работа с объектом

var data = {};

Назначение значений объекту

data[10001] = "foo";

После того как преобразования или обработка данных были применены к объекту, скопируйте данные в буфер

for (key in data){
    buffer[key] = data[key];
}

Отправьте буфер в плагин. И при необходимости очистить данные.

Поступая таким образом, вы не будете перебирать больше, чем фактические данные, которые вы обработали.

JavaScript, массивы,
Похожие вопросы