Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana cara bergantian secara elegan pada dua tatasusunan?

Bahasa terhad: Javascript

Sebagai contoh, beberapa lubang aktiviti akan dimasukkan ke dalam senarai produk.

Sebagai contoh, terdapat dua tatasusunan A dan B dengan panjang berubah Kami memerlukan 6 elemen tatasusunan A + 1 elemen tatasusunan B untuk disusun seperti ini

Sebagai contoh, lebih banyak tatasusunan disusun berselang-seli

Apa yang saya boleh fikirkan ialah menukar tatasusunan ini kepada tatasusunan dua dimensi seperti paging, kemudian gunakan gelung untuk menggabungkannya menjadi tatasusunan, dan akhirnya melintasi.

Adakah cara yang lebih baik

phpcn_u1582phpcn_u15822688 hari yang lalu619

membalas semua(2)saya akan balas

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

    Seberapa elegan? . .

    balas
    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
    }

    balas
    0
  • Batalbalas