JSFiddle - React, Tailwind, and code Playground
by Alex Myronov
JavaScript
const perm = (arr) => {
return arr.reduce((res, curr, index) => {
const t = perm([
...arr.slice(0, index),
...arr.slice(index + 1)
])
// return t.map(char => arr[index] + char)
console.log(t)
// return t
}, [])
}
const permutateCharArr = (prefix, arr, result) => {
if (arr.length === 0) {
return result.push(prefix)
}
arr.forEach((char, index) => {
const prefixed = prefix + arr[index]
permutateCharArr(
prefixed,
[...arr.slice(0, index), ...arr.slice(index + 1)],
result
)
})
}
const result = []
const permutate = str => permutateCharArr('', str.split(""), result)
//permutate("abc")
//console.log(result)
console.log(perm("abc".split("")))