我有一個數組,它被引用作爲模型綁定(to handsontable)。我們稱之爲data
。在某些時候,我需要重新從頭開始重新計算(我們稱之爲新陣列freshData
;它可能有不同的長度)。分配data = freshData
不會完成這項工作,因爲這隻會改變data
引用的內容,並且不會更改綁定模型。但調用的data
.splice
和.push
這項工作:通過引用重新填充數組的最簡單方法是什麼?
data.splice(0,data.length);
for(var i = 0; i < freshData.length; i++)
data.push(freshData[i]);
我在想:這能在更短的方式進行?就像沒有循環,甚至可能使用單一方法? data.concat(freshData)
沒有幫助,因爲它創建了一個新的陣列,它本身不會改變data
。此外,該迭代看起來在性能方面有所欠佳......
謝謝,單行是非常好的,但我可能會使用enapupe提出的老式版本'data.push.apply(data,freshData)'。說到性能:所以在JS中,我們不能更改對新陣列的引用,對吧? (當被問及避免迭代時,這就是我想到的) – YakovL
是的,沒錯。我們只能改變屬性引用,但是你的'data'是一個變量。 – Bergi