JavaScriptで配列から指定した数値以上の要素を抽出する方法
JavaScriptでは、数値の配列の中から特定の条件を満たす要素だけを取り出したい場面がよくあります。本記事では、第一引数に数値の配列、第二引数に基準となる数値を受け取り、その数値以上の要素だけを含む新しい配列を返す関数の作り方を解説します。
実装コード
以下は、forループを使って条件を満たす要素を集めるシンプルな実装例です。
const arr = [56, 34, 2, 7, 76, 4, 45, 3, 3, 34, 23, 2, 56, 5];
const threshold = 40;
const findGreater = (arr, num) => {
const res = [];
for(let i = 0; i < arr.length; i++){
if(arr[i] < num){
continue;
};
res.push(arr[i]);
};
return res;
};
console.log(findGreater(arr, threshold));このコードでは、配列の各要素を順番にチェックし、引数で渡した数値(ここでは40)より小さい要素はcontinue文でスキップします。条件を満たす要素だけが結果配列resにpushされ、最後にその配列が返されます。
出力結果
上記のコードを実行すると、コンソールには次のように出力されます。
[ 56, 76, 45, 56 ]
より簡潔な書き方:filter()メソッドを使う
Array.prototype.filter()を利用すれば、同じ処理をもっと簡潔に記述できます。
const arr = [56, 34, 2, 7, 76, 4, 45, 3, 3, 34, 23, 2, 56, 5]; const threshold = 40; console.log(arr.filter(num => num >= threshold)); // [ 56, 76, 45, 56 ]
filter()は、コールバック関数がtrueを返した要素だけで新しい配列を自動的に生成してくれるメソッドです。ループ変数やcontinue文が不要になるため、コードが短くなり、可読性・保守性も大きく向上します。日常的な開発では、このような配列メソッドを活用するのがおすすめです。
-
JavaScriptでバラバラの数字名から数字を復元する方法
問題 次のように、数字の英語名の文字が混ぜ込まれた文字列があるとします。 const str = 'TOWNE'; この文字列をよく観察すると、文字を組み合わせることで「TWO(2)」と「ONE(1)」という2つの数字名が見つけられます。 したがって、この場合に期待される出力は「21」です。 今回の課題は、このような文字列を引数として受け取り、その中に隠れている数字を検出して返すJavaScript関数を記述することです。 解き方のアプローチ この問題は、以下の手順で解決できます。 0〜9の各数字名(ZERO、ONE、TWOなど)について、考えられるすべての並べ替え(順列
-
【JavaScript】スペース区切りの数字文字列から仲間はずれの偶数・奇数を見つける方法
問題 スペースで区切られた数字を含む文字列を引数として受け取り、その中から「仲間はずれ」の数字を返すJavaScript関数を作成します。 入力される文字列には、すべて奇数の中に偶数が1つだけ含まれているか、あるいはすべて偶数の中に奇数が1つだけ含まれているという特徴があります。関数の目的は、その唯一の異なる数字を見つけ出して返すことです。 サンプルコード 以下が実装例です。 { if(num % 2 === 0){ evens.push(num); }else{ odds.push(num);