我想將一個數組的值複製到另一個數組中,但沒有打破與此數組關聯的鏈接其他詞我不能只將新數組分配給這個值,這就是爲什麼我不能使用像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