JavaScriptで配列から奇数以外の値を抽出して返す方法
問題
数値の配列を受け取るJavaScript関数を作成することを考えます。
この関数は、入力された配列に含まれる数値のうち奇数ではない要素だけを集め、それらを格納した新しい配列を構築して返す必要があります。
サンプルコード
以下がその実装例です。
const arr = [5, 32, 67, 23, 55, 44, 23, 12];
const findNonOdd = (arr = []) => {
const res = [];
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(el % 2 !== 1){
res.push(el);
continue;
};
};
return res;
};
console.log(findNonOdd(arr));
出力結果
[ 32, 44, 12 ]
コードの解説
この関数では、forループを使って配列の各要素を先頭から順に取り出し、剰余演算子(%)によって el % 2 !== 1 という条件で奇数かどうかを判定しています。
2で割った余りが1にならない要素、つまり偶数(および0などの偶数に相当する値)だけが res 配列に追加され、最終的にこの配列が戻り値として返されます。元の入力配列は変更されず、新しい配列が生成される点もポイントです。
filter()メソッドを使ったより簡潔な書き方
同じ処理は、Array.prototype.filter() メソッドを使うと1行で簡潔に実現できます。
const arr = [5, 32, 67, 23, 55, 44, 23, 12]; const findNonOdd = (arr = []) => arr.filter(el => el % 2 !== 1); console.log(findNonOdd(arr)); // [ 32, 44, 12 ]
filter()は条件を満たす要素だけを集めた新しい配列を返すため、ループや一時変数を明示的に書く必要がなく、可読性の高いコードになります。用途に応じて使い分けるとよいでしょう。
-
JavaScriptのArray.values()メソッドとは?使い方とサンプルコードを徹底解説
JavaScriptのArray.values()メソッドとは? JavaScriptのArray.values()メソッドは、対象の配列に含まれるすべての値を格納したイテレーターオブジェクトを返します。ES2015(ES6)以降で利用可能なこのメソッドは、for...ofループやスプレッド構文([...arr])と組み合わせることで、配列の各要素を効率的に取り出せます。 なお、keys()やentries()がインデックス情報も一緒に返すのに対し、values()は純粋に「値」だけを順番に提供する点が大きな特徴です。 基本構文 arr.values() 引数は不要で、戻り値として新しいArr
-
JavaScriptのコンストラクターから値を返す方法
JavaScriptのコンストラクターから値を返すには?JavaScriptでは、コンストラクター関数内で明示的にオブジェクトをreturnすると、new演算子によって生成されるインスタンス(this)の代わりに、そのオブジェクトが結果として返されます。この仕組みを利用すると、コンストラクターの戻り値を柔軟に制御できます。以下は、JavaScriptのコンストラクターから値を返すコード例です。サンプルコード<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-