第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從具有m個(gè)元素的n個(gè)數(shù)組生成JavaScript組合

從具有m個(gè)元素的n個(gè)數(shù)組生成JavaScript組合

炎炎設(shè)計(jì) 2019-07-02 17:33:30
從具有m個(gè)元素的n個(gè)數(shù)組生成JavaScript組合在JavaScript中,我很難想出從n個(gè)數(shù)組中生成包含m個(gè)元素的數(shù)組組合的代碼。對(duì)于其他語(yǔ)言,我也看到過(guò)類似的問(wèn)題,但答案包含了語(yǔ)法或庫(kù)魔法,我不知道如何翻譯。考慮以下數(shù)據(jù):[[0,1], [0,1,2,3], [0,1,2]]3數(shù)組,其中包含不同數(shù)量的元素。我想要做的是通過(guò)組合每個(gè)數(shù)組中的一個(gè)項(xiàng)來(lái)獲得所有的組合。例如:0,0,0 // item 0 from array 0, item 0 from array 1, item 0 from array 20,0,10,0,20,1,00,1,10,1,20,2,00,2,10,2,2諸若此類。如果數(shù)組的數(shù)目是固定的,那么就很容易實(shí)現(xiàn)硬編碼。但是數(shù)組的數(shù)量可能有所不同:[[0,1], [0,1]][[0,1,3,4], [0,1], [0], [0,1]]任何幫助都將不勝感激。
查看完整描述

3 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

下面是一個(gè)使用遞歸幫助函數(shù)的簡(jiǎn)單而簡(jiǎn)短的函數(shù):

function cartesian() {
    var r = [], arg = arguments, max = arg.length-1;
    function helper(arr, i) {
        for (var j=0, l=arg[i].length; j<l; j++) {
            var a = arr.slice(0); // clone arr
            a.push(arg[i][j]);
            if (i==max)
                r.push(a);
            else
                helper(a, i+1);
        }
    }
    helper([], 0);
    return r;}

用法:

cartesian([0,1], [0,1,2,3], [0,1,2]);

要使函數(shù)接受數(shù)組,只需將簽名更改為function cartesian(arg)所以arg是一個(gè)參數(shù),而不是arguments.


查看完整回答
反對(duì) 回復(fù) 2019-07-02
?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以通過(guò)構(gòu)建子數(shù)組來(lái)采取迭代的方法。


var parts = [[0, 1], [0, 1, 2, 3], [0, 1, 2]],

    result = parts.reduce((a, b) => a.reduce((r, v) => r.concat(b.map(w => [].concat(v, w))), []));


console.log(result.map(a => a.join(', ')));

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對(duì) 回復(fù) 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 683 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)