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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個函數(shù)看不太懂,求指點?

一個函數(shù)看不太懂,求指點?

冉冉說 2018-11-16 10:11:14
function choose(arr, size) {  var allResult = [];  (function (arr, size, result) {    var arrLen = arr.length;    if (size > arrLen) {      return;    }    if (size == arrLen) {      allResult.push([].concat(result, arr))    } else {      for (var i = 0; i < arrLen; i++) {        var newResult = [].concat(result);        newResult.push(arr[i]);        if (size == 1) {          allResult.push(newResult);        } else {          var newArr = [].concat(arr);          newArr.splice(0, i +  1);          arguments.callee(newArr, size - 1, newResult);        }      }    }  })(arr, size, []);  return allResult;}
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經(jīng)驗 獲得超3個贊

這是一個應(yīng)用黑魔法的排列組合實現(xiàn),實現(xiàn)的功能大致為:

  • choose([1, 2, 3], 1) 得到 [ [ 1 ], [ 2 ], [ 3 ] ]

  • choose([1, 2, 3], 2) 得到 [ [ 1, 2 ], [ 1, 3 ], [ 2, 3 ] ]

  • choose([1, 2, 3, 4], 3) 得到 [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ]

內(nèi)層的匿名函數(shù)通過 arguments.callee 遞歸地調(diào)用自己,每次遞歸調(diào)自己時 size 參數(shù)均減一,每次的 newResult 都是一個【長度為總組合個數(shù),每項元素為當(dāng)前組合】的二維數(shù)組,當(dāng) newResult 中每項長度達到 size 時,結(jié)束遞歸并返回最后的 result。


查看完整回答
反對 回復(fù) 2018-12-17
  • 1 回答
  • 0 關(guān)注
  • 504 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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