给出一组数字,例如 1,2,3
打印出所有数字的组合 1,2,3,12,13,23,123
先看一下我最初的写法
const arr = [1, 2, 3, 4, 5, 6]
const result = ['']
for (let i = 0; i < arr.length; i++) {
const temp = result.map((r) => r + arr[i])
result.push(...temp)
}
console.log(result.slice(1))
但是会发现,如果数字太多会导致栈溢出.原因就是(...temp)中的...
拓展运算符
所以换个方法concat
也不错
代码在下面:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 19, 11]
let result = ['']
for (let i = 0; i < arr.length; i++) {
const temp = result.map((r) => r + arr[i])
result = result.concat(temp)
}
console.log(result.slice(1))
大佬太厉害了
看过等于会了
\