私が作成するほとんどすべてのJavascriptコードに含めるユーティリティ関数を作成しました。上記の関数の目的は、配列から1つの要素を削除することです。引数として配列とインデックスを取り、必要な要素が削除された配列を返します。
関数は次のとおりです。
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
これはまったく機能しないようでした。「これ」はおそらく実際の配列ではないことを私は知っていたからです。メソッド内から配列を参照するにはどうすればよいですか?