我正在尝试对给定数组[1,2,10]
的元素进行重复,以得到size n
的结果,如果大小n
等于2
,则结果为[ [1,1], [1,2], [1,10], [2,2], [2, 10], [10, 10] ]
我正在尝试不使用任何魔术函数javascript进行递归,只需执行push和pop :),这是我的代码
function t(arr, length, i = 0, result = []) {
let final = []
if( result.length == length){
final.push(result)
console.log(final)
return
}
let j = i;
while( j < arr.length ) {
result.push(arr[j])
// console.log(result)
t(arr, length, j, result)
result.pop()
j++
}
return final
}
function k() {
const arr = [1,2,10]
const l = 2
return t(arr, l)
}
console.log( "finall result ===> " , k())
function t(arr, length, i = 0, result = []) {
let final = []
if( result.length == length){
final.push(result)
console.log(final)
return
}
let j = i;
while( j < arr.length ) {
result.push(arr[j])
// console.log(result)
t(arr, length, j, result)
result.pop()
j++
}
return final
}
function k() {
const arr = [1,2,10]
const l = 2
return t(arr, l)
}
console.log( "finall result ===> " , k())
结果是一个空数组,尽管在上述条件下,我将final
推到result
的数组为空,我的代码有什么错误吗?
预期结果:final
您可以采用递归方法,并在不更改数组的情况下迭代数组。
[ [1,1], [1,2], [1,10], [2,2], [2, 10], [10, 10] ]