【JavaScript】数値・文字列・falsy値が混在する配列から最大の数値を取得する方法
概要
数値、文字列、さらには undefined や null、NaN といった falsy な値が混在する配列を受け取り、その中から最大の数値を返す JavaScript 関数を作成してみましょう。
たとえば、入力配列が次のような場合を考えてみます。
const arr = [23, 'hello', undefined, null, 21, 65, NaN, 1, undefined, 'hii'];
この場合、期待される出力は 65 です。それでは、実際のコードを見ていきましょう。
コード例
const arr = [23, 'hello', undefined, null, 21, 65, NaN, 1, undefined, 'hii'];
const pickBiggest = arr => {
let max = -Infinity;
for(let i = 0; i < arr.length; i++){
if(!+arr[i]){
continue;
};
max = Math.max(max, +arr[i]);
};
return max;
};
console.log(pickBiggest(arr));
出力結果
コンソールには次のように表示されます。
65
コードの解説
この関数の仕組みを順番に説明します。
- まず、変数
maxを-Infinityで初期化します。これにより、どれほど小さい数値でも確実に比較・更新できるようになります。 - ループ内では単項プラス演算子
+arr[i]を使って各要素を数値へ変換します。数値形式の文字列は数値に変換されますが、undefined、null、NaNなどは falsy な値になります。 - falsy な要素は
continueによってスキップされ、有効な数値だけがMath.max()で比較され、最大値が逐次更新されていきます。
このように、型が不揃いな配列でも単項プラス演算子と Math.max() を組み合わせることで、余計な前処理なしに簡潔に最大の数値を取り出すことができます。
-
JavaScriptの型付き配列(Typed Array)とは?バイナリデータ操作の基本を解説
JavaScriptの型付き配列は、配列のような振る舞いをするオブジェクトで、生のバイナリデータへ効率的にアクセスするための仕組みです。画像処理、音声処理、WebGLなど、パフォーマンスが求められる場面で活躍します。 通常の配列との違い 通常のArrayオブジェクトは要素の追加・削除によって動的にサイズが変化し、任意のJavaScriptの値を格納できます。JavaScriptエンジンはこうした配列に対しても最適化を行い、高速な動作を実現しています。 一方、型付き配列は扱えるデータの種類が固定されており、通常の配列とは明確に区別されます。注意: 型付き配列に対して Array.isArray(
-
JavaScriptの基本配列メソッド解説!push・pop・shift・unshift・spliceの使い方を実例付きで紹介
JavaScriptには、配列を操作するための便利な組み込みメソッドが数多く用意されています。その中でも特によく使われるのが、要素の追加や削除を行う以下の5つの基本メソッドです。 JavaScriptの主要な配列メソッド一覧 メソッド説明 Array.push()配列の末尾に要素を追加します。 Array.pop()配列の末尾から要素を取り除きます。 Array.unshift()配列の先頭に要素を追加します。 Array.shift()配列の先頭から要素を取り除きます。 Array.splice()配列内の任意の位置で要素の追加・削除を行います。 これらのメソッドは、配列の