Работа над некоторыми пиксельными манипуляциями и должна ускорить алгоритм, который добавляет элементы в массив.Прямо сейчас я выбрасываю типизированный массив, из которого поступают пиксели во время алгоритма.Есть ли быстрый способ добавить элементы в typedArray, и если нет, то вы видите какие-либо улучшения, которые могут быть сделаны в моем текущем алгоритме?
Мой текущий алгоритм выглядит следующим образом (упрощенно и с indexesToAdd ascending):
//Example input and output
//indexesToAdd = [0,3,4]; // Normally around 4000 elements
//typedArray = [100,200,40,50,100]; // Normally around 1 million elements
//Output = [100,0,200,40,50,0,100,0];
function addIndexes(indexesToAdd, typedArray) {
var newArray = [];
var index = 0;
for(var i=0;i<typedArray.length;i++) {
if (i != indexesToAdd[index]) {
newArray.push(typedArray[i]);
} else {
newArray.push(typedArray[i], 0);
index++;
}
}
return newArray;
}
Я думал об использовании сплайсинга, но Uint8ClampedArray не имеет этой способности.Я также попытался преобразовать Uint8ClampedArray в обычный массив, чтобы я мог использовать сплайс, но этот процесс преобразования был в 10 раз длиннее алгоритма.