Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie kann man elegant abwechselnd über zwei Arrays iterieren?

Eingeschränkte Sprache: Javascript

Zum Beispiel werden mehrere Aktivitätsgruben in eine Produktliste eingefügt.

Zum Beispiel gibt es zwei Arrays A und B mit variablen Längen. Wir benötigen 6 A-Array-Elemente + 1 B-Array-Element, um so angeordnet zu werden

Zum Beispiel werden noch mehr Arrays abwechselnd angeordnet

Ich kann mir vorstellen, diese Arrays wie Paging in zweidimensionale Arrays umzuwandeln, sie dann mithilfe einer Schleife zu einem Array zu kombinieren und schließlich zu durchlaufen.

Gibt es einen besseren Weg

phpcn_u1582phpcn_u15822688 Tage vor620

Antworte allen(2)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-19 10:43:15

    var a = [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5],
        b = [11,22,33,44,55];
        
    a.reduce((acc,ele,idx) => ((idx + 1) % 3 ? acc.push(ele) : acc.push(ele, b.shift()), acc), []);

    优雅么。。。

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:43:15

    export function join<T>(first: T[], second: T[], firstSize: number, secondSize: number): T[] {
        let out: T[] = []
        let i = 0
        for (; firstSize * i < first.length && secondSize * i < second.length; i++) {
            out = out.concat(
                first.slice(firstSize * i, firstSize),
                second.slice(secondSize * i, secondSize),
            )
        }
        out = out.concat(first.slice(firstSize * i), second.slice(secondSize * i))
        return out
    }

    Antwort
    0
  • StornierenAntwort