配列の重複をチェックする。
JavaScript で配列にある値が含まれているか調べる - Reread
これをそのまま使わせてもらってた。
使い方はこう。
var ary = new Array( 1,5,10 ); alert( ary.contains(10) ); // true alert( ary.contains(24) ); // false
ところが
Array.prototype.contains = function(value){ for(var i in this){ if( this.hasOwnProperty(i) && this[i] === value){ return true; } } return false; } var ary = [1,5,[10]]; console.log(typeof 1,ary.contains(1)) //-> number true console.log(typeof [5],ary.contains([5])) //-> object false console.log(typeof [10],ary.contains([10])) //-> object false
引数がobjectだと動かないので改造した。
Array.prototype.contains = function(value){ for(var i in this){ if( this.hasOwnProperty(i) && this[i].toString() === value.toString()){ return true; } } return false; } var ary = [1,5,[10]]; console.log(typeof 1,ary.contains(1)) //-> number true console.log(typeof [5],ary.contains([5])) //-> object true console.log(typeof [10],ary.contains([10]))//-> object true
そんだけ。
document.evaluateで拾ってきた値(オブジェクト)をそのまま配列につっこんで重複分をなくして次の処理をしたいときに気づいた。
こっちで使った。
twitter_followers_checkerというgreasemonkeyをつくった。