如何使用递归检查嵌套数组中数字的出现?

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

我有一个包含未知数量嵌套数组的数组。我有一个要查找 N 的数字,以及一个要查看它是否出现 K 次的数字。我需要使用递归来确定 N 是否等于 K.

下面的代码是我到目前为止想出来的,下面还提供了测试用例。

function doesNumAppearKTimes(arr, N, K, count = 0) {
  for(let i = 0;i<arr.length; i++) {
    if(Array.isArray(arr[i])) {
      doesNumAppearKTimes(arr[i],N,K,count)
    } else if(arr[i] === N) {
      count++
    }
    }
  return count === K;
  }

测试用例示例:

console.log(doesNumAppearKTimes([1,2,[3,4,[5],6],3,7],3,3)); // 'false' console.log(doesNumAppearKTimes([[0,-8,1,[-2,2]],[11,[4],6],2,2],2,3)); // 'true' console.log(doesNumAppearKTimes([10,21,4,9,3,7,4,1],4,1)); // 'false' 

javascript recursion multidimensional-array counting
© www.soinside.com 2019 - 2024. All rights reserved.