數學中排列組合相關知識,給一個小夥伴做的
function queue(arr, size) {
if (size > arr.length) { return; }
var allResult = [];
(function (arr, size, result) {
if (result.length == size) {
allResult.push(result);
} else {
for (var i = 0, len = arr.length; i < len; i++) {
var newArr = [].concat(arr),
curItem = newArr.splice(i, 1);
arguments.callee(newArr, size, [].concat(result, curItem));
}
}
})(arr, size, []);
return allResult;
}
var arr = [0,0,3]; //改變這個數組的值
var newArr=queue(arr, arr.length);
var s=new Set();
for(var i=0;i<newArr.length;i++){
s.add(newArr[i].toString());
}
console.log(Array.from(s),"排列的情況個數:"+s.size);