You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中查找多数组重复值及重复次数的技术问题

解决多数组中数字重复次数统计问题

先帮你梳理下现有代码里的小问题,再实现重复次数统计的功能:

一、修复现有代码的错误

你的multipleArray函数和调用部分存在两处明显错误:

  1. 函数内变量名写错:arrayOfArrays.push(niz35)应该改为arrayOfArrays.push(array35)——你生成的数组变量是array35,niz35是未定义的变量;
  2. 函数传参错误:console.log(multipleArray(arrayOfArrays))要改成console.log(multipleArray(total_arrays))——函数需要接收的是要生成的数组总数,也就是你定义的total_arrays变量。

另外我还补充了代码规范细节:用let/const声明变量避免全局污染,把for循环的z <= total_number改成z < total_number(否则会多生成一个数组)。修复后的基础代码如下:

function createArray35() { 
  const array35 = []; 
  let i = 0;
  do { 
    const rng = Math.floor(Math.random() * 48) + 1;
    if (!array35.includes(rng)) { 
      array35.push(rng); 
      i++; 
    } 
  } while (i < 35) 
  return array35 
} 

function multipleArray(total_number) { 
  const arrayOfArrays = []; 
  for (let z = 0; z < total_number; z++) {
    const array35 = createArray35(); 
    arrayOfArrays.push(array35); 
  } 
  return arrayOfArrays; 
} 

const total_arrays = 3; // 想要创建的array35总数
const multipleArrays = multipleArray(total_arrays);
console.log('生成的多数组:', multipleArrays);

二、实现重复次数统计功能

接下来编写一个统计函数,遍历所有子数组,记录每个数字的出现次数:

function countDuplicates(multipleArrays) {
  const countMap = {};
  // 遍历每一个子数组
  multipleArrays.forEach(subArray => {
    // 遍历子数组中的每个数字
    subArray.forEach(num => {
      // 统计次数:存在则+1,不存在则初始化为1
      countMap[num] = (countMap[num] || 0) + 1;
    });
  });
  // 按你想要的格式输出结果
  for (let num = 1; num <= 48; num++) {
    console.log(`数字${num}重复了${countMap[num] || 0}次`);
  }
  return countMap; // 返回统计结果对象,方便后续复用
}

// 调用统计函数
const duplicateCounts = countDuplicates(multipleArrays);

三、额外优化建议

如果需要生成大量数组(比如上千个),原createArray35里的array35.includes(rng)性能会比较差(数组查找是O(n)复杂度)。可以用Set来优化生成速度,Set的查找是O(1)复杂度:

function createArray35() { 
  const numSet = new Set();
  while (numSet.size < 35) {
    const rng = Math.floor(Math.random() * 48) + 1;
    numSet.add(rng);
  }
  return Array.from(numSet);
}

内容的提问来源于stack exchange,提问作者Marko Jordanovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:22:47