recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment alterner élégamment une itération sur deux tableaux?

Langage restreint : Javascript

Par exemple, plusieurs stands d'activités seront insérés dans une liste de produits.

Par exemple, il y a deux tableaux A et B de longueurs variables. Nous avons besoin de 6 éléments de tableau A + 1 élément de tableau B pour être disposés comme ceci

.

Par exemple, encore plus de tableaux sont disposés en alternance

Ce à quoi je peux penser, c'est convertir ces tableaux en tableaux bidimensionnels comme la pagination, puis utiliser une boucle pour les combiner en un tableau, et enfin parcourir.

Y a-t-il une meilleure façon

phpcn_u1582phpcn_u15822737 Il y a quelques jours662

répondre à tous(2)je répondrai

  • 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), []);

    Quelle élégance ? . .

    répondre
    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
    }

    répondre
    0
  • Annulerrépondre