条件に一致する配列要素の検索方法
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【条件に一致するインデクスを取得する方法】
findIndex メソッドを使うと、引数に指定した
コールバック関数の中で定義した条件式を満たす要素を配列の先頭から検索することができます。
・書式
配列名.findIndex( コールバック関数(要素の値) )
配列名.findIndex( コールバック関数(要素の値, 要素のインデックス) )
配列名.findIndex( コールバック関数(要素の値, 要素のインデックス, 配列) )
findIndex メソッドは配列に含まれる要素を先頭から順に取り出しコールバック関数を呼び出します。
サンプル
let result = [75, 68, 92, 84, 90];
let passIndex = result.findIndex(function(element){//コールバック関数
return element > 85;
});
console.log(passIndex);
2
次はコールバック関数にアロー関数式を使って見ると
let passIndex = result.findIndex(element => element > 85);//アロー関数式 console.log(passIndex);
2
【条件に一致する要素の値を取得する(findメソッド)】
find メソッドを使うと、引数に指定したコールバック関数の中で定義した条件式を満たす要素を配列の先頭から検索することができます。
・書式
配列名.find( コールバック関数(要素の値) )
配列名.find( コールバック関数(要素の値, 要素のインデックス) )
配列名.find( コールバック関数(要素の値, 要素のインデックス, 配列) )
find メソッドは配列に含まれる要素を先頭から順に取り出しコールバック関数を呼び出します。コールバック関数は、現在取り出されている要素の値、要素のインデックス、そして配列そのものを引数にして呼び出されます。
サンプル
let result = [75, 68, 92, 84, 90];
let passValue = result.find(function(element){
return element > 85;
});
console.log(passValue);
92
アロー関数式を使うと
let passValue = result.find(element => element > 85);
console.log(passValue);
92【少なくても一つの要素が条件に一致するか調べる方法】some メソッドを使うと、引数に指定したコールバック関数の中で定義した条件式を満たす要素が配列の中に一つでもあるかどうかを調べる場合に使用します。
・書式
配列名.some( コールバック関数(要素の値) )
配列名.some( コールバック関数(要素の値, 要素のインデックス) )
配列名.some( コールバック関数(要素の値, 要素のインデックス, 配列) )
some メソッドは配列に含まれる要素を先頭から順に取り出しコールバック関数を呼び出します。
サンプル
let result = [75, 68, 92, 84, 90];
let checkOver85 = result.some(function(element){
return element > 85;
});
console.log(checkOver85);
> truelet checkUnder60 = result.some(function(element){
return element > false
■アロー関数式を使う
let result = [75, 68, 92, 84, 90];
let checkOver85 = result.some(element => element > 85);
console.log(checkOver85);
> true
let checkUnder60 = result.some(element => element < 60);
console.log(checkUnder60);
> false
【すべての要素が条件を満たしているかどうか】
every メソッドを使うと、引数に指定したコールバック関数の中で定義した条件式を配列のすべての要素が満たすかどうかを調べる場合に使用します。
・書式
配列名.every( コールバック関数(要素の値) )
配列名.every( コールバック関数(要素の値, 要素のインデックス) )
配列名.every( コールバック関数(要素の値, 要素のインデックス, 配列) )
サンプル
let result = [75, 68, 92, 84, 90];
let checkOver60 = result.every(function(element){
return element > 60;
});
console.log(checkOver60);
> true
let checkUnder90 = result.every(function(element){
return element < 90;
});
console.log(checkUnder90);
> falseアロー関数式を使用すると
let result = [75, 68, 92, 84, 90];
let checkOver85 = result.every(element => element > 60);
console.log(checkOver85);
> true
let checkUnder60 = result.every(element => element < 90);
console.log(checkUnder60);
> false