我收到了一個非常奇怪的響應,我正在寫一個JS腳本。我對JS有點新,所以我不太瞭解如何改變現有的類(在本例中是Arrays)。在JavaScript中實現Array上的函數
我希望我正確地做這個,但這裏是我試圖運行的代碼的JSFiddles(抽象顯著,但我相信我已經包括了所有的相關部分)
我認爲問題是我不知道如何正確地改變Array類,因爲當我刪除Array.prototype的「刪除」改變時,我得到了一個不同的錯誤(該數組沒有remove函數)。
我得到的例外情況如下:
`Uncaught TypeError: Object function (from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
} has no method 'shift'`
你不需要remove'加上'以陣列。已經有['splice'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice)。無論如何,您省略了調用此方法的部分。另外,'for(var key in object)'是迭代數組的錯誤方法。使用數字'for'。 – katspaugh
@bhb:'sn'不是'Stroke'對象。 – Guffa
@ katspaugh:我更喜歡「for ... in」解決方案,因爲它允許我從使用索引的方法中抽象出來。坦率地說,如果可以的話,我會使用HashSet。我傾向於認爲這是可擴展的,因爲它也適用於無序的數據結構。 –