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

JS实现过滤数组X,排除在数组Y中出现次数为质数的元素

实现方案

你已经完成了Y数组的元素频次统计和质数判断的基础逻辑,只需要补全两个部分即可:

  • 修正质数判断函数的边界异常:你当前的checkPrime函数会错误把≤1的数判定为质数,需要补充边界判断
  • 遍历X数组过滤符合要求的元素

完整可运行代码

const arrX = [2, 3, 9, 2, 5, 1, 3, 7, 10]
const arrY = [2, 1, 3, 4, 3, 10, 6, 6, 1, 7, 10, 10, 10]
const arrZ = []
// 用对象存频次比数组更合理,避免稀疏数组问题
const counts = {};

// 统计Y数组元素出现次数
for (const num of arrY) {
  counts[num] = counts[num] ? counts[num] + 1 : 1;
}

// 修正后的质数判断:小于等于1的数都不是质数
const checkPrime = num => {
    if (num <= 1) return false;
    for (let i = 2; i < num; i++) if (num % i === 0) return false
    return true
}

// 遍历X数组过滤元素
for (const num of arrX) {
    const occurCount = counts[num] || 0;
    // 仅当出现次数不是质数时保留元素
    if (!checkPrime(occurCount)) {
        arrZ.push(num);
    }
}

console.log(arrZ); // 输出 [2, 9, 2, 5, 7, 10] 符合预期

逻辑验证

各元素在Y数组的出现次数和判断结果如下:

  • 2在Y中出现1次:1不是质数 → 保留
  • 3在Y中出现2次:2是质数 → 排除
  • 9、5不在Y中出现:次数为0,不是质数 → 保留
  • 1在Y中出现2次:2是质数 → 排除
  • 7在Y中出现1次:1不是质数 → 保留
  • 10在Y中出现4次:4不是质数 → 保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:15:00