javascript - 查找数组中每个数字的第一次出现
问题描述
依次取数组的每个四位数字,返回找到所有数字 0-9 时您所在的数字。如果无法找到所有数字,则返回“缺少数字!”
我试图循环然后设置一个条件 if (i != i+1) push into new array 这只是给了我数组,很明显我的逻辑是错误的。谁能帮帮我
例如调用这个函数
arr = findAllDigits([5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083])
代码应返回 5057。
打电话时
arr = findAllDigits([4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868])
应该返回“缺失的数字”
function findAllDigits(arr) {
newArr = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] != arr[i + 1]) newArr.push(arr[i]);
console.log(newArr);
}
}
我是否需要拆分,因为它将逗号之前的所有内容都作为一个数字,然后迭代?
解决方案
您可以在此处使用设置
循环array
然后创建一个set
,如果set
大小变为,则必须返回当前数字,10
因为您需要检查0-9
function findAllDigits(arr) {
const set = new Set();
for (let n of arr) {
String(n)
.split("")
.forEach((c) => set.add(c));
if (set.size === 10) return n;
}
return "Missing digits!";
}
const arr1 = [5175, 4538, 2926, 5057, 6401, 4376, 2280, 6137, 8798, 9083];
const arr2 = [4883, 3876, 7769, 9846, 9546, 9634, 9696, 2832, 6822, 6868];
console.log(findAllDigits(arr1));
console.log(findAllDigits(arr2));
推荐阅读
- python - sklearn:使用 Pipeline 和 TransformedTargetRegressor 缩放 x(数据)和 y(目标)
- reactjs - 谷歌分析会话管理在不同选项卡中的同一应用程序,在一个反应应用程序中
- asp.net-core - Linux Ubuntu 上生产中的 Microsoft.Extensions.Logging.Log4Net 问题
- javascript - 如何在平面列表中仅渲染一次特定元素 - React Native
- java - 从 jmeter 中的 JSON 请求有效负载生成 HMAC sha256
- java - 基于元素的最长公共前缀
- javascript - React Native 将 ref 传递给用 HOC 包装的功能组件
- javascript - 使用 Webgl 创建三角形的随机位置
- xml - 使用 XSD 验证一个元素或其他元素或两者
- visual-foxpro - 为什么这个 IF FOUND 的条件总是为真?