ホームページ > ウェブフロントエンド > jsチュートリアル > フラット化配列とは何ですか?JavaScript で再帰関数を使用してフラット化配列の問題を解決するにはどうすればよいですか?

フラット化配列とは何ですか?JavaScript で再帰関数を使用してフラット化配列の問題を解決するにはどうすればよいですか?

王林
リリース: 2024-07-24 00:13:23
オリジナル
1153 人が閲覧しました

What is a flattened array and How do solving flatten array problem using recursion functions in JavaScript?

導入:

まず、フラット化された配列とは何かを理解しましょう。フラット化された配列は配列ですが、この配列は多次元配列、ネストされた配列、または別の配列を含む配列の形式です。

フラット化は、多次元配列をフラット化として知られる 1 つの 1 次元配列に減らすのに役立つ 1 つのアプローチまたはテクニックです。

プロジェクトに取り組んでいるときや問題を解決しているときに、この種のデータが必要になることがあります。その場合は、フラット化された配列を使用してデータセットのグループを渡すと役立ちます。

例:

// This is a flattened array
let arr = [1,44, [2, [3,9], 67], 9];
ログイン後にコピー

平坦化された配列の問題を解決するにはどうすればよいですか?

この種の問題を解決するには複数の方法がありますが、ここでは再帰法を使用して説明します。これは、この種の問題を解決するための最良のアプローチの 1 つです。

ここでは、再帰の詳細については説明しませんが、概要について少し説明します。さらに詳しく知りたい場合は、別の記事を作成します。

再帰は、反復的な作業の問題を​​解決するためのプログラミング アプローチです。再帰は、指定された特定の条件に一致しなくなるまで直接または間接的に自分自身を呼び出します。一致した場合、関数は呼び出し自体を停止します。

 // This is a flattened array
// Input:
  let arr = [1,44, [2, [3,9], 67], 9];

  // Function Defin 
  function recur(a) {
    let newArr = [];
    for (let i =0 ; i < a.length; i++) {
        const element = a[i];
        if (Array.isArray(element)) {
            // Function calling itself recursion
            newArr.push(...recur(element))
        } else  {
            newArr.push(element)
        }
    }

    return newArr;
  }

console.log(recur(arr))
Output:
[1,44,2,3,9, 67, 9]

// We can also write the same code using for each:
function flattenArray(items) {
    const flat = [];
    items.forEach(item => {
      if (Array.isArray(item)) {
        flat.push(...flatten(item));
      } else {
        flat.push(item);
      }
    });

    return flat;
  }

onsole.log(flattenArray(arr))
output:
[1,44,2,3,9, 67, 9]
ログイン後にコピー

以上がフラット化配列とは何ですか?JavaScript で再帰関数を使用してフラット化配列の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート