如何检查数组数组中是否存在键?

MrD*_*Duk 1 ruby

是否有一种简单的方法可以在不过度循环的情况下执行以下操作?

myArray = [["a","b"],["c","d"],["e","f"]]
if myArray.includes?("c")
   ...
Run Code Online (Sandbox Code Playgroud)

我知道这很好,如果它只是一个正常的字符数组...但我想要一些同样优雅的数组的字符数组(帮助将其转换为元组数组的奖励点).

use*_*234 6

如果您只需要一个真/假答案,您可以展平数组并调用include:

>> myArray.flatten.include?("c")
=> true
Run Code Online (Sandbox Code Playgroud)


Ste*_*fan 5

你可以使用assoc:

my_array = [['a', 'b'], ['c', 'd'], ['e', 'f']]

if my_array.assoc('c')
  # ...
Run Code Online (Sandbox Code Playgroud)

它实际上返回整个子阵列:

my_array.assoc('c') #=> ["c", "d"]
Run Code Online (Sandbox Code Playgroud)

或者nil如果没有匹配:

my_array.assoc('g') #=> nil
Run Code Online (Sandbox Code Playgroud)

还有rassoc搜索第二个元素:

my_array.rassoc('d') #=> ["c", "d"]
Run Code Online (Sandbox Code Playgroud)