配列内に特定の値があるか検索する方法をメモ。
サンプルコード
for文で調べる方法です。
JavaScript
// 検索する配列 var arr = ['a', 'b', 'c', 'd', 'e']; // 1つ目のサンプル var serachStr = 'c'; // 検索する文字列 var result = false; // 結果 for (var i = 0; i < arr.length; i++) { // 一致する文字列が見つかった場合は結果をtrueに変更する if(arr[i] === serachStr) { result = true; break; } } console.log('1番目', result); // true // 2つ目のサンプル serachStr = 'f'; // 検索する文字列 result = false; // 結果 for (var i = 0; i < arr.length; i++) { // 一致する文字列が見つかった場合は結果をtrueに変更する if(arr[i] === serachStr) { result = true; break; } } console.log('2番目', result); // false
次に、indexOf()を使う方法です。
indexOf()は指定した値が配列の何番目にあるかを返すメソッドで、配列内にない場合は-1を返します。
JavaScript
// 検索する配列 var arr = ['a', 'b', 'c', 'd', 'e']; // 1つ目のサンプル var serachStr = 'c'; // 検索する文字列 var result = arr.indexOf(serachStr); console.log('1番目', result); // 2 // 一致する文字列が見つかった場合 if(result >= 0) { console.log('ありました'); } else { console.log('ありませんでした'); } // 2つ目のサンプル serachStr = 'f'; // 検索する文字列 result = arr.indexOf(serachStr); console.log('2番目', result); // -1 // 一致する文字列が見つかった場合 if(result >= 0) { console.log('ありました'); } else { console.log('ありませんでした'); }
配列内にあるかどうかを判定する場合、indexOf()の戻り値が0以上かどうかで判定できます。
配列内の値を検索するデモページ2
コメントが承認されるまで時間がかかります。