Я пытаюсь скопировать одно значение массива в другое, но без нарушения связей, связанных с этим массивом, другими словами я не могу просто назначить новый массив это значение, поэтому я не могу использовать такие методы, как slice() или concat(). Вот код функции, которая делает вещь:Длина массива javascript не изменяется после удаления элемента из него
self.updateBreadcrumbs = function (newBreadcrumbs) {
var old_length = self.breadcrumbs.length;
var new_length =newBreadcrumbs.length;
var j = new_length > old_length ? new_length: old_length;
for (var i = 0; i < j; i++) {
if(old_length < i+1){
self.breadcrumbs.push(newBreadcrumbs[i]);
continue;
}
if(new_length < i+1){
delete self.breadcrumbs[i];
continue;
}
if (self.breadcrumbs[i].title !== newBreadcrumbs[i].title) {
self.breadcrumbs[i] = newBreadcrumbs[i];
}
}
}
Моя проблема заключается в том, что длина массива не изменяется, когда я что-то удалить из массива.
P.S Если вы знаете какой-либо более простой способ сделать это, я полностью открыт для предложений.
Удаление элемента типа, который не должен изменять длину массива. – Pointy
Вы удаляете объект, удерживаемый массивом. Массив остается незатронутым. –
В чем смысл этой функции? Почему бы не просто «self.breadcrumbs = newBreadcrumbs»? – georg