У меня есть массив-подобный объект:добавления/удаления элементов массива, как объект
[1:Array[10], 2: Array[2], 3: Array[2], 4: Array[2], 5: Array[3], 6: Array[1]]
Im пытается удалить первые два элемента, сделать некоторые вещи, а затем вставить их снова на то же место.
Вот что я делаю:
array = Array.prototype.splice.call(array, 0,2);
При входе array
в Firefox это показать это:
Array [ <2 empty slots>, Array[1], Array[2], Array[3], Array[1] ]
Выглядит хорошо для меня, я снял первые два элемента и массив теперь начинается с 2 пустых слота.
Итак, теперь я хочу добавить объекты к этим двум пустым слотам.
Для простоты, позволяет удалить его элементов из массива, а затем вставьте их снова в том же месте:
var twoFirstItems = Array.prototype.slice.call(array, 0,2);
array = Array.prototype.splice.call(array, 0,2);
Теперь, чтобы повторно вставить twoFirstItems
я думаю, что я мог бы сделать:
array.unshift(twoFirstItems)
Это не работает должным образом, оно вставляет массив, но у него нет key
, как это было до его модификации. Я предполагаю, что это связано с unshift
, не работающим с array-like object
, как с array
.
Итак, как вы удаляете/вставляете элементы в array-like-object
правильно?
Если я сделать следующее:
console.log(array);
console.log(typeof array);
Результат:
Array [ <1 empty slot>, Array[2], Array[2], Array[2], Array[3], Array[1] ]
object
то, что вы имеете в виду массив, как, когда вы работаете с массивом? –
Да, кажется, это обычный массив, но когда я это делаю: console.log (typeof array) это журнал 'объект'. – user2915962
Почему бы не использовать индекс массива? –