创建元素的重复多维

问题描述 投票:1回答:1

我正在尝试对给定数组[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

javascript arrays for-loop recursion multidimensional-array
1个回答
0
投票

您可以采用递归方法,并在不更改数组的情况下迭代数组。

[ [1,1], [1,2], [1,10], [2,2], [2, 10], [10, 10] ]
© www.soinside.com 2019 - 2024. All rights reserved.