/**
* 全排列
*/
function allSort(arr, start, end) {
if (start > end) {
// 做一些想要的操作
console.log(arr);
} else {
for (let i = start; i <= end; i++) {
swap(arr, i, start);
allSort(arr, start + 1, end);
swap(arr, i, start);
}
}
}
function swap(arr, i, j) {
const temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
const arr = [1, 2, 3, 4];
allSort(arr, 0, arr.length - 1);
/**
* 求组合
*/
function ZuHe(Arr, arr, cur, n) {
if (cur == n) {
const tempArr = [];
for (let i = 0; i < cur; i++) {
if (arr[i] === 0) {
tempArr.push(Arr[i]);
}
}
if (tempArr && tempArr.length > 0) {
console.log(tempArr);
}
return;
}
arr[cur] = 1;
ZuHe(Arr, arr, cur + 1, n);
arr[cur] = 0;
ZuHe(Arr, arr, cur + 1, n);
}
const Arr = [1, 2, 3, 4];
ZuHe(Arr, [], 0, Arr.length);