ruby : Finding lowest free ID in an ID array

标签 ruby arrays loops arraylist

我有一个具有从 1 到 4000 的不同 ID 的数组。我需要在数据库中添加一些元素,这些元素的 ID 将进入该数组。由于可能的最大 ID 是 4000(在我的情况下这不是那么多),我希望能够找到可用于我的新元素的最低未使用 ID。

我知道如何在 C++ 中做到这一点,但由于我是 Ruby 的新手,所以我正在寻求帮助。在 C++ 中,我会编写一个循环,在其中我将检查 array[i] == array[i+1] - 1。如果不是这样,那么新的 id 将是 array[i] + 1。

我只是不知道如何用 Ruby 编写它。

最佳答案

使用范围,您可以找到不属于数组的第一个元素:

array = [1,2,3,5,6]
(1..4000).find { |i| !array.include?(i) }
# => 4

关于 ruby : Finding lowest free ID in an ID array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794430/

相关文章:

objective-c - 在 Objective-C 数组中获取特定类型的所有对象的优雅方法

php - 如何在php中删除数组键名称中的空格?

bash - 最小化 bash 中延迟循环处理的缓冲管道

c++ - 就像一个结构数组而不声明数组

r - 我如何使用 R 在 Stata 中执行类似 foreach 的操作?

ruby - 我应该显式关闭 StringIO 实例吗?

ruby - 如何在 Rails 3 中为 session 设置可配置的超时值?

ruby - 如何在 Chef LWRP 定义中实现动态属性默认值

ruby - 从ruby中的文件内容循环

c++ - 一旦中间有空位,如何将数组中的所有内容移动到左侧?