趣味は車輪の再発明♪

配列要素の有無を調べる - [ 配列操作 / javascript ]


「小さな小さなサンプル&スニペット」
▲インデックスへ戻る▲
カテゴリ:「配列操作」

配列要素に特定の値が含まれているかどうかを調べるコードです。「どこにあるか」はわからなくてもよい場合です。

//3つの要素の配列
var arr = ['A','B','C'];

//配列内の位置を返します。ない場合は(-1)です。
if( arr.indexOf('B') != -1) {
	//あり
} else {
	//なし
}

//対応していないブラウザでも(とりあえず)使用できるようにする。
if(!Array.prototype.indexOf) {
	Array.prototype.indexOf =
		function(value, fromIndex) {
			var i = fromIndex || 0;
			if(i >= 0) {
				var n = this.length;
				for(; i < n; i++) {
					if(this[i] === value) {
						return i;
					}
				}
			}
			return -1;
		};
}		

javascriptでは配列のindexOfメソッドで値を検索し、(-1)以外を返すなら「ある」と判定します。 この関数では、厳密に型がチェックされますので注意。文字列'123'と、数値としての123は別物として扱われます。

また、indexOfは最近のブラウザにしか実装されていないらしく、非対応の場合は、独自に実装する必要があります。 非対応の場合にも使えるようにするための例を示していますが、これは最小限の仕様です(ここでは使用しない引数fromIndexが負の場合を認めていません)。 Array.indexOfの正式な仕様と実装方法、また、対応ブラウザのリストなどの情報は 「Array.indexOf - JavaScript | MDN」 を参照してください。

カテゴリ「配列操作」の他のエントリ:
| 配列要素を連結して文字列化 | ハッシュキーの有無を調べる | 配列要素を検索 |



RSS Feed Widget
配列要素の有無を調べる - [ 配列操作 / javascript ] 」 (http://bicycle.life.coocan.jp/takamints/index.php/snippets/snippet/array/exists/js)
by Koji Takami ( email: vzg03566@gmail.com, GitHub: takamin )