我创建了一个实用函数,我编写的几乎所有 Javascript 代码中都包含它。所述函数的目的是简单地从数组中删除一个元素。它接受一个数组和一个索引作为参数,并返回删除了所需元素的数组。
这是功能:
sliceHere = function(array, i)
{
buffOne = array.slice(0, i);
buffTwo = array.slice(i + 1);
return buffOne.concat(buffTwo);
}
它工作得很好。如果我有一个数组a = ["a", "b", "c"]
,并且我想从中删除"a"
它,我会简单地做a = sliceHere(a, 0);
.
虽然这确实有效,但我想用更“优雅”的东西来代替它。我想做的是使该函数成为我拥有的所有数组sliceHere
的方法。所以我可以简单地做并达到同样的效果。这只是感觉像是一种更好的做事方式,如果我错了,请纠正我。a.sliceHere(0)
我所做的是这样的:
sliceHere = function(i)
{
buffOne = this.slice(0, i);
buffTwo = this.slice(i + 1);
this = buffOne.concat(buffTwo);
}
Array.prototype.sliceHere = sliceHere
这似乎根本行不通。因为我知道“this”可能不是实际的数组。如何从方法内部引用数组?