JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで指定した範囲内の配列要素をフィルタリングする方法

数値の配列を第1引数として受け取り、上限値と下限値をそれぞれ第2引数と第3引数として受け取るJavaScript関数を作成します。この関数は、指定された上限と下限の範囲内(境界値を含む)にある要素だけを抜き出し、新しい配列として返す必要があります。

実装例

このような処理には、配列の filter() メソッドを使うのが最もシンプルです。各要素が下限以上かつ上限以下であるかを判定する条件式をコールバック関数内に記述します。

const array = [18, 23, 20, 17, 21, 18, 22, 19, 18, 20];
const lower = 18;
const upper = 20;

const filterByLimits = (arr = [], upper, lower) => {
    let res = [];
    res = arr.filter(el => {
        return el >= lower && el <= upper;
    });
    return res;
};

console.log(filterByLimits(array, upper, lower));

出力結果

コンソールには次のように出力されます。

[ 18, 20, 18, 19, 18, 20 ]

コードの解説

上記のコードでは、filter() メソッドが元の配列の各要素に対してコールバック関数を実行し、条件(el >= lower && el <= upper)を満たす要素のみを新しい配列に集めます。比較演算子に >=<= を使用しているため、下限値と上限値そのものも結果に含まれます。

なお、元の配列 array 自体は変更されず、フィルタリングされた新しい配列が返される点も重要です。これにより、元のデータを保持したまま安全に処理を行うことができます。

  1. JavaScriptのslice()メソッドとは?配列から要素を取り出す使い方を実例で解説

    JavaScriptのslice()メソッドは、大きな配列の中から選択した範囲の要素を抜き出し、新しい配列として返すメソッドです。最大の特徴は、元の配列を一切変更しない(非破壊的な操作)という点にあります。そのため、元データを保持したまま部分的なコピーを作りたい場合に非常に便利です。 slice()メソッドの基本構文 arr.slice(start, end) start:取り出しを開始するインデックス番号(省略可・デフォルトは0) end:取り出しを終了する位置の直前のインデックス番号(省略可・デフォルトは配列の末尾まで)。endで指定した要素自体は結果に含まれない点に注意してください。

  2. JavaScriptのshift()メソッドとは?配列の先頭要素を削除する方法を解説

    JavaScriptのshift()メソッドとはJavaScriptのshift()メソッドは、配列から先頭(最初)の要素を取り除き、その要素を返すメソッドです。この操作により配列の長さは1つ減少します。なお、末尾の要素を削除したい場合はpop()メソッドを使用し、先頭に要素を追加したい場合はunshift()メソッドを使います。shift()メソッドのコード例以下は、ボタンをクリックすると配列の先頭要素が削除されるサンプルコードです。<!DOCTYPE html> <html lang="ja"> <head> <meta cha