// created on 2020/7/16
//从n个数中挑m个的排列组合算法
var result = [];//最终的结果
var array = [1, 2, 3, 4];// 被挑选的
/**
*
* @param {*} array 被选则的数组
* @param {*} max 要选出m个进行排列组合
* @param {*} tmp 缓存的数组
*/
function getOne(array, max, tmp) {
for (var i = 0; i < array.length; i++) {
tmp.push(array[i]);
if (tmp.length == max) {
result.push(tmp.slice());
}
else {
var item = array.splice(i, 1);
getOne(array, max, tmp);
array.splice(i, 0, item[0]);
}
tmp.pop();
}
}
// 从数组array中挑出n个元素进行排列
getOne(array, 2, []);
console.log("result:" + JSON.stringify(result) + ",length:" + result.length)