我收到了一个非常奇怪的响应,我正在写一个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。我倾向于认为这是可扩展的,因为它也适用于无序的数据结构。 –