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

JavaScriptのincludes()でネストされた配列を検索する簡単な方法

ネストされた配列(多次元配列)に対して includes() を使用しても、期待どおりに動作しないことはよく知られています。Array.prototype.flat() 関数を使えば配列をフラット化してから検索できますが、ブラウザ対応状況はまだ十分とは言えません。

そこで今回は、配列と文字列を受け取り、その文字列が配列内に存在するかどうかに応じて真偽値(boolean)を返す includesMultiDimension() 関数を作成します。

この問題にはさまざまな解決策がありますが、その多くは再帰処理や複雑な配列操作、ループなどを必要とします。

ここで紹介するのは、ネストされた配列内に特定の文字列が存在するかどうかを確認する、おそらく最も簡単な方法です。

コードは以下のとおりです。

const names = ['Ram', 'Shyam', 'Laxman', [
    'Jay', 'Jessica', [
      'Vikram'
    ]
]];
const includesMultiDimension = (arr, str) =>
JSON.stringify(arr).includes(str);
console.log(includesMultiDimension(names, 'Vikram'));

このワンライナーの解決策では、配列を JSON 文字列に変換することで、単純に includes を適用できるようにしています。

出力

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

true
  1. JavaScriptのArray.prototype.includes()メソッドとは?配列内に特定の要素が含まれるか判定する方法

    Array.prototype.includes()メソッドとは JavaScriptのArray.prototype.includes()メソッドは、配列の中に特定の要素が含まれているかどうかを判定するためのメソッドです。要素が見つかった場合はtrue、見つからなかった場合はfalseを返します。 基本構文 arr.includes(searchElement[, fromIndex]) searchElement:検索対象となる要素を指定します。 fromIndex(省略可能):検索を開始するインデックス位置です。省略した場合は先頭(0)から検索されます。 サンプルコード 以下は、in

  2. JavaScriptで配列内オブジェクトのプロパティ名を置き換える方法

    JavaScriptでオブジェクト配列のプロパティ名を置き換える方法 JavaScriptでは、map()メソッドを活用することで、配列に含まれる各オブジェクトのプロパティ名を別の名前に簡単に置き換えることができます。map()は元の配列を変更せずに新しい配列を生成するため、安全かつ効率的なデータ変換処理に適しています。 以下は、オブジェクト配列のプロパティ名 name を fullName に置き換えるサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta