javascript - Bagaimana cara bergantian secara elegan pada dua tatasusunan?
phpcn_u1582
phpcn_u1582 2017-05-19 10:41:15
0
2
685

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_u1582
phpcn_u1582

membalas semua(2)
phpcn_u1582
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? . .

巴扎黑
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
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan