思路

数组全排列(不考虑重复元素)

实现

1
2
3
4
5
6
7
8
9
10
11
function permute(arr, preVal = [], l = arr.length, rs = []) {
for (let i = 0; i < arr.length; i++) {
const _arr = arr.concat()
preVal[l - arr.length] = _arr.splice(i, 1)[0]
if (_arr.length === 0) rs.push(preVal.concat())
else permute(_arr, preVal, l, rs)
}
return rs
}

console.log(permute([1, 2, 3]))

 评论