javascript - 使用 Javascript 查找数组中最小未使用的数字

标签 javascript

我有一个充满数字的数组。这是一个例子:

myArray = [0,1,2,4,5];

我需要找到从 1 开始的最小未使用数字,因此在本例中为 3。

我一直在阅读有关使用 indexOf 的信息,但我不确定如何将它用于我的特定目的。

最佳答案

假设数组未排序,您总是从 0 开始,并考虑到您希望在没有遗漏的情况下找到最大的数字:

var k = [6, 0, 1, 2, 4, 5];

k.sort(function(a, b) { return a-b; });   // To sort by numeric

var lowest = -1;
for (i = 0;  i < k.length;  ++i) {
  if (k[i] != i) {
    lowest = i;
    break;
  }
}
if (lowest == -1) {
    lowest = k[k.length - 1] + 1;
}
console.log("Lowest = " + lowest);

记录答案 3。如果 3 也在那里,将记录 7,因为没有其他数字丢失。

如果您并不总是从零开始,请使用偏移量:

var k = [6, 2, 3, 4, 5];

k.sort(function(a, b) { return a-b; });   // To sort by numeric

var offset = k[0];
var lowest = -1;
for (i = 0;  i < k.length;  ++i) {
  if (k[i] != offset) {
    lowest = offset;
    break;
  }
  ++offset;
}
if (lowest == -1) {
    lowest = k[k.length - 1] + 1;
}
console.log("Lowest = " + lowest);

记录答案 7,因为在开始序列的 2 之后没有遗漏任何答案。

关于javascript - 使用 Javascript 查找数组中最小未使用的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672861/

相关文章:

javascript - 如果有人点击末尾包含主题标签的网址,如何编写 JavaScript 条件

javascript - WT 能否将网页呈现为主页的一部分?

javascript - 解决 $.post 中的 Javascript/jQuery 内存泄漏问题

javascript - 如何在 jQuery 对象中保留对另一个 jQuery 对象的引用?

javascript - Unicode 代理项对和 String.fromCodePoint() — JavaScript

JavaScript循环遍历JSON数组?

javascript - 内部表单上的 JQuery 验证(对话框)

javascript - HTML 选择下拉列表与 JavaScript 函数

javascript - 基于选择的 Angular 动态验证

javascript - JS 正则表达式匹配引号内的逗号