The World of Remnant

全排列 还能改进

把递归出口改为1


function f(arr) {
  var result = []
  if (arr.length === 2) {
    return [
      [arr[0], arr[1]],
      [arr[1], arr[0]]
    ]
  }
  var lastResult = f(arr.slice(1))
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < lastResult.length; j++) {
      result.push([...lastResult[j].slice(0, i), arr[0], ...lastResult[j].slice(i)])
    }
  }
  return result
}

console.log(f([1, 2, 3, 4]));