数组全排列


const fullPermutate= function(a) {
  if (a.length === 1) {
    return [a];
  }
  if (a.length === 2){
    return [[a[0],a[1]], [a[1],a[0]]];
  }

  let first;
  let rest;
  let res = [];

  for (let i = 0; i < a.length; i++){
    first = a[i];
    rest = [...a.slice(0, i),...a.slice(i+1)];
    let arr = sort(rest);
    for (let j = 0; j < arr.length; j++){
      res.push([first, ...arr[j]]);
    } 
  }
  return res;
}

相关