順序を尊重しながら、可能なすべての組み合わせのJavaScript配列を再帰的に構築します

アーロン・カニントン

次の概念をコードに組み込むのに問題があります。

次の配列が与えられたとしましょう:

[
    'h1,h2',
    'span,style'
]

これから、次の出力を取得したいと思います。

[
    'h1 span',
    'h1 style',
    'h2 span',
    'h2 style
]

そのため、元の配列のすべての組み合わせを含む文字列の配列があり、順序も尊重されます(したがってspan h1style h2無効です)。

詳細を説明するには:事実上コンマ区切りの値である文字列の単一レベルの配列があります。この配列を繰り返し処理し、これらの文字列をコンマで新しい配列に分割し、この新しい配列のインデックスごとに、元の配列の後続のインデックスからの他のすべての分割値を含む新しい文字列を作成します。

これをJavaScriptでプログラムしようとすると問題が発生します。再帰が必要になることは理解していますが、その方法について混乱しています。さまざまな異なる失敗した方法を試した後、私は現在これを持っています:

function mergeTagSegments(arr, i, s) {

    i = i || 0;
    s = s || '';

    if(!arr[i]) { return s; }

    var spl = arr[i].split(',');
    for(var j in spl) {
        s += spl[j] + mergeTagSegments(arr, i+1, s);
    }

    return s;

}

これも意図したとおりに機能しません。

もともとこんなに簡単な作業だと思っていたことができず、少し恥ずかしい思いをします。しかし、私は本当にこれから学ぶことを望んでいます。

アドバイスやヒントを事前に感謝します。

kaspermoerch

正しい方向に沿ったあなたの考え。再帰は間違いなく進むべき道です。以下に提案されたソリューションを実装しました。これにより、目的の出力が得られるはずです。

var values = ['h1,h2', 'span,style'];

function merge(input, index) {
    var nextIndex = index + 1;
    var outputArray = [];
    var currentArray = [];

    if(index < input.length) {
        currentArray = input[index].split(',');
    }

    for(var i = 0, end = currentArray.length; i < end; i++) {               
        if(nextIndex < input.length) {
            merge(input, nextIndex).forEach(function(item) {
                outputArray.push(currentArray[i] + ' ' + item);
            });
        }
        else {
            outputArray.push(currentArray[i]);
        }
    }

    return outputArray;
}

var output = merge(values, 0, '');
console.log(output);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

可能なすべての組み合わせで文字列配列を再帰的に展開します

分類Dev

PostgreSQLは、再帰クエリで可能なすべての組み合わせ(順列)を検索します

分類Dev

配列内のすべての可能な組み合わせを使用して再帰を理解する

分類Dev

再帰を使用して、配列内のすべての可能な組み合わせを反復する方法は?

分類Dev

グループの配列から可能なすべての組み合わせを順番に再帰的に取得します。配列サイズとグループサイズは1-Xで、Xは多数ではありません

分類Dev

python-再帰なしで置換して可能なすべての組み合わせを取得します

分類Dev

要素の特定の配列に対して可能なすべての組み合わせを出力します

分類Dev

すべての配列要素の組み合わせを再帰的に計算します

分類Dev

配列内のすべての可能な組み合わせ-再帰?

分類Dev

JavaScriptを使用して、2つの配列の可能なすべての組み合わせを配列の配列として取得します

分類Dev

整数配列リストのすべての順列と組み合わせを再帰的にリストします

分類Dev

可能なすべての組み合わせを動的な順序で試す

分類Dev

GoogleSpreadSheetsの列の可能なすべての組み合わせを生成します

分類Dev

列の可能なすべての組み合わせを変更します

分類Dev

numpyを使用して2つの配列のすべての組み合わせの配列を構築する

分類Dev

配列内の2つの組み合わせの可能なすべてのセットを検索します

分類Dev

Pythonで配列列のすべての可能な組み合わせを生成します

分類Dev

配列を組み合わせて順序を維持しますが、ある配列の順序を別の配列よりも優先します

分類Dev

すべての可能な組み合わせ(種の集合)のnumpy配列を生成します

分類Dev

繰り返し値が可能な場合は、配列値の可能なすべての組み合わせを取得します

分類Dev

整数配列のすべての可能な組み合わせを一覧表示します

分類Dev

char配列内の文字の(長さkの)すべての組み合わせの文字列配列を再帰的に生成します

分類Dev

どのようにJavaで二つの配列からすべての可能な組み合わせを取得しますか?

分類Dev

与えられた番号のすべての可能な順列と組み合わせを見つけます。Pythonを使用したリスト内の要素の

分類Dev

2D配列で可能なすべての組み合わせを作成します

分類Dev

変数IDによって2つの列のすべての可能な組み合わせを取得します

分類Dev

他の列を保持しながら、特定の列のすべての可能な組み合わせを取得します

分類Dev

値の合計が固定された配列と配列モデルのすべての可能な組み合わせを取得します

分類Dev

PHPで可能なすべての組み合わせを単一の配列にリストしたい

Related 関連記事

  1. 1

    可能なすべての組み合わせで文字列配列を再帰的に展開します

  2. 2

    PostgreSQLは、再帰クエリで可能なすべての組み合わせ(順列)を検索します

  3. 3

    配列内のすべての可能な組み合わせを使用して再帰を理解する

  4. 4

    再帰を使用して、配列内のすべての可能な組み合わせを反復する方法は?

  5. 5

    グループの配列から可能なすべての組み合わせを順番に再帰的に取得します。配列サイズとグループサイズは1-Xで、Xは多数ではありません

  6. 6

    python-再帰なしで置換して可能なすべての組み合わせを取得します

  7. 7

    要素の特定の配列に対して可能なすべての組み合わせを出力します

  8. 8

    すべての配列要素の組み合わせを再帰的に計算します

  9. 9

    配列内のすべての可能な組み合わせ-再帰?

  10. 10

    JavaScriptを使用して、2つの配列の可能なすべての組み合わせを配列の配列として取得します

  11. 11

    整数配列リストのすべての順列と組み合わせを再帰的にリストします

  12. 12

    可能なすべての組み合わせを動的な順序で試す

  13. 13

    GoogleSpreadSheetsの列の可能なすべての組み合わせを生成します

  14. 14

    列の可能なすべての組み合わせを変更します

  15. 15

    numpyを使用して2つの配列のすべての組み合わせの配列を構築する

  16. 16

    配列内の2つの組み合わせの可能なすべてのセットを検索します

  17. 17

    Pythonで配列列のすべての可能な組み合わせを生成します

  18. 18

    配列を組み合わせて順序を維持しますが、ある配列の順序を別の配列よりも優先します

  19. 19

    すべての可能な組み合わせ(種の集合)のnumpy配列を生成します

  20. 20

    繰り返し値が可能な場合は、配列値の可能なすべての組み合わせを取得します

  21. 21

    整数配列のすべての可能な組み合わせを一覧表示します

  22. 22

    char配列内の文字の(長さkの)すべての組み合わせの文字列配列を再帰的に生成します

  23. 23

    どのようにJavaで二つの配列からすべての可能な組み合わせを取得しますか?

  24. 24

    与えられた番号のすべての可能な順列と組み合わせを見つけます。Pythonを使用したリスト内の要素の

  25. 25

    2D配列で可能なすべての組み合わせを作成します

  26. 26

    変数IDによって2つの列のすべての可能な組み合わせを取得します

  27. 27

    他の列を保持しながら、特定の列のすべての可能な組み合わせを取得します

  28. 28

    値の合計が固定された配列と配列モデルのすべての可能な組み合わせを取得します

  29. 29

    PHPで可能なすべての組み合わせを単一の配列にリストしたい

ホットタグ

アーカイブ