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

如何实现findAllDigits函数,返回数组中首次集齐0-9数字的四位数

问题解答

你确实需要将每个四位数拆分为单个数字做统计,这是实现需求的核心步骤。

实现思路
  • 第一步:初始化一个Set结构存储已收集到的数字,利用Set自动去重的特性,重复数字无需重复存储,方便后续判断是否收集完整。
  • 第二步:依次遍历数组中的每一个四位数:
    • 将当前数字转为字符串后拆分为单个字符,再逐一转回数字格式,得到当前数字的所有位值
    • 将所有位值存入准备好的Set中
    • 存入后判断Set的大小是否为10:如果是,说明已经收集齐0-9全部数字,直接返回当前遍历到的四位数即可
  • 第三步:如果遍历完全部数组元素后,Set的大小仍小于10,返回"Missing digits!"
完整实现代码
function findAllDigits(arr) {
  // 存储已收集的数字,自动去重
  const collected = new Set();
  for (const num of arr) {
    // 拆分当前四位数为单个数字
    const digits = num.toString().split('').map(Number);
    // 把每个数字加入集合
    digits.forEach(d => collected.add(d));
    // 判断是否集齐0-9
    if (collected.size === 10) {
      return num;
    }
  }
  // 遍历完仍未集齐
  return "Missing digits!";
}
测试验证
  • 调用findAllDigits([5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083]),返回结果为5057,符合预期。
  • 调用findAllDigits([4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868]),返回结果为"Missing digits!",符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:15:03