SOURCE

class Permutation {
  constructor(arr) {
    this.arr = Array.from(arr)
    this.result = []
    this.len = 0
    this.run(0)
  }

  run(index) {
    if (index == this.arr.length - 1) {
      this.result.push(Array.from(this.arr))
      this.len++
      return
    }
    for (let i = index; i < this.arr.length; i++) {
      [this.arr[index], this.arr[i]] = [this.arr[i], this.arr[index]];
      this.run(index + 1);
    }
  }
}



let p = new Permutation(['A', 'B','C'])
console.log(p.result)
console.log(p.len)
console 命令行工具 X clear

                    
>
console