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)
;[this.arr[index], this.arr[i]] = [this.arr[i], this.arr[index]]
}
}
}
let result =[]
const arrange = (array, index = 0) => {
let arr = Array.from(array);
if (index == arr.length - 1) {
result.push(arr);
}
for (let i = index; i < arr.length; i++) {
[arr[i], arr[index]] = [arr[index], arr[i]];
arrange(arr, index + 1);
[arr[i], arr[index]] = [arr[index], arr[i]];
}
return result
}
let a = arrange([1,2,3])
console.log(a,a.length)
console