Не уверен, что это может быть дубликат, но я испытываю некоторые проблемы, пытаясь придумать лучший способ переместить элемент в массив, заполненный массивами элементов.Смещение массива элементов в другой индекс массива
Такие, как:
var foo = [
[ {obj: 1}, {obj: 2}, {obj: 3}, {obj: 4} ],
[ {obj: 5}, {obj: 6}, {obj: 7}, {obj: 8} ],
[ {obj: 9}, {obj: 10}, {obj: 11}, {obj: 12} ]
];
Если удалить один элемент дан arrayIndex, было бы удалить этот элемент затем переложить все элементы протекающих вниз к соответствующему массиву. Такие, как если удалить OBJ 3 результат был бы:
var arrayIndex = 0;
var objIndex = 2;
var bar = foo[arrayIndex].splice(objIndex, 1);
Результат:
bar = [
[ {obj: 1}, {obj: 2}, {obj: 4}, {obj: 5} ],
[ {obj: 6}, {obj: 7}, {obj: 8}, {obj: 9} ],
[ {obj: 10}, {obj: 11}, {obj: 12} ]
];
Другим примером может быть, как показано удаление OBJ 8:
var arrayIndex = 1;
var objIndex = 3;
var bar = foo[arrayIndex].splice(objIndex, 1);
Результат:
bar = [
[ {obj: 1}, {obj: 2}, {obj: 3}, {obj: 4} ],
[ {obj: 5}, {obj: 6}, {obj: 7}, {obj: 9} ],
[ {obj: 10}, {obj: 11}, {obj: 12} ]
];
Вопрос для меня смещает все элементы обработки в правильное положение массива. Кроме того, я хотел бы удалить пустой массив. Где длина foo уменьшится. foo также будет мутирован.
Вот моя попытка jsfiddle: https://jsfiddle.net/mLw8kncn/1/
Любая помощь будет оценена.
Если вы удаляете элемент из массива, он автоматически переключается, единственный раз, когда этого не происходит, является фактическое использование delete. Удалить останется за пустым пространством, поэтому длина массива не уменьшится. Если вы используете сращивание, это не должно быть проблемой. – zer00ne
Я просто заметил, что вы хотите переместить элементы в другие массивы, я попытаюсь ответить на эту часть. – zer00ne
Пожалуйста, покажите, что вы делали до сих пор. – 1983