こんにちは、muchoです。
たまたま見かけたソースの中に便利なものがあったのでメモ。
配列から指定した値を取り除く!というものです。
spliceの変形です。
Array.prototype.remove = function() {
var i, j, l, m;
l = arguments.length;
i = 0;
while (i < l) {
m = this.length;
j = 0;
while (j < m) {
if (arguments[i] === this[j]) {
this.splice(j, 1);
m--;
} else {
j++;
}
}
i++;
}
return this.length;
};
これだと、prototypeを書き換えてしまうので、それもどうかと思いつつ、
この機能がもともと実装されてたらいいのになーと思ったり。
使う時はこんな感じで。
var ary = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; ary.remove(5); ary.remove(8, 9, 0); console.log(ary); //[1, 2, 3, 4, 6, 7]


