我有一个具有从 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/