在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js在原數(shù)組基礎(chǔ)上每3個(gè)值組成新數(shù)組,里面的值不能重復(fù),怎么組合?

js在原數(shù)組基礎(chǔ)上每3個(gè)值組成新數(shù)組,里面的值不能重復(fù),怎么組合?

js在原數(shù)組基礎(chǔ)上每3個(gè)值組成新數(shù)組,里面的值不能重復(fù)

原數(shù)組

var arr = ["1", "2", "3", "4", "5"];

結(jié)果

 [["1", "2", "3"],["1", "2", "4"],["1", "2", "5"],["1", "3", "4"],["1", "3", "5"]..... ];
[["1", "2", "3","4"],["1", "2", "3","5"],["1", "2", "4","5"] ];

我寫了取兩個(gè)值的

var result = [];
$.each(arr,function(i){
            var newArr = [];
            newArr.push(arr[i]);
            for(var a=i; a<arrLength; a++){
                    newArr.push(arr[a]);
                    if(arr[a+1]){
                        newArr.push(arr[a+1]);
                    }
                if(newArr.length == 3){
                    result.push(newArr);
                }
            }
        });

        console.log(result);
回答
編輯回答
孤星

組合問題. 寫個(gè)或者找個(gè)組合庫. for 循環(huán)不通用

2017年10月15日 02:18
編輯回答
汐顏

經(jīng)典組合問題。先排序再 dfs + backtracking 最后判斷一下長度即可。

function combination (arr, length) {
  const result = []
  _comb(arr.slice().sort(), length, 0, [])
  return result

  function _comb (arr, length, start, path) {
    if (path.length === length) {
      return result.push(path.slice())
    }
    for (let i = start; i < arr.length; i++) {
      if (i === start || arr[i] !== arr[i-1]) {
        path.push(arr[i])
        _comb(arr, length, i + 1, path)
        path.pop()
      }
    }
  }
};
2018年3月12日 21:05