Я знаю, как вставлять в массив по индексу, когда этот индекс уже присутствует. Скажем arr = [1, 2, 3, 4]
и arr.splice(2, 0, 0)
приведет к [1, 2, 0, 3, 4]
. Однако у меня есть пустой массив, который заполняется из объекта, который не находится в каком-либо конкретном порядке. На самом деле массив используется для сортировки объекта:Вставка JavaScript в массив по индексу
var key = parseInt(object[object_key].timestamp);
while (key && array_sorted[key]) { //Attempt at preventing overwriting elements with same timestamp
key++;
}
key = key ? key : array_sorted.length + 1;
array_sorted.splice(key, 0, object[object_key].data);
Теперь это будет строить массив [object[0].timestamp, object[1].timestamp, object[2].timestamp, ...]
вместо что-то вроде этого [undefined, ..., undefined, object[4].timestamp, object[3].timestamp, undefined, object[0].timestamp, undefined, ..., undefined, object[1].timestamp]
... Как я могу добиться сортировки объекта объектов по timestamp
(свойство объекта объекта) с использованием Этот метод? Есть ли способ вставить в индекс пустого массива?
'вар а = []; a.splice (2, 0, 'test'); 'работает, если вы хотите вставить в начале массива или индекса 2. В противном случае не будет' a [2] = 'test'' работать для вас – megawac
@megawac 'a.length' возвращает ** 1 ** вместо 3 a [2] создаст объект с пустым массивом и элементом с ключом« 2 »... – Xeos
пытаются индексировать их с меткой времени в качестве ключа? Поскольку ваше свойство 'array_sorted.length' (подается на ключ, когда ключ не проверяется) может переопределять потенциальные ключи ... – shennan