forked from tejaswankalluri/make-pull-request
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path22ndoct.java
More file actions
22 lines (22 loc) · 663 Bytes
/
Copy path22ndoct.java
File metadata and controls
22 lines (22 loc) · 663 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function stringPermutations(str) {
let letters = str.split('')
, results = [[letters.shift()]]
while (letters.length) {
const currLetter = letters.shift()
let tmpResults = []
results.forEach(result => {
let rIdx = 0
while (rIdx <= result.length) {
const tmp = [...result]
tmp.splice(rIdx, 0, currLetter)
tmpResults.push(tmp)
rIdx++
}
})
results = tmpResults
}
return results
.map(letterArray => letterArray.join(''))
.filter((el, idx, self) => (self.indexOf(el) === idx))
.sort()
}