2012.11.28 | mucho
こんにちは、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]