是否有一种简单的方法可以在不过度循环的情况下执行以下操作?
myArray = [["a","b"],["c","d"],["e","f"]]
if myArray.includes?("c")
...
Run Code Online (Sandbox Code Playgroud)
我知道这很好,如果它只是一个正常的字符数组...但我想要一些同样优雅的数组的字符数组(帮助将其转换为元组数组的奖励点).
如果您只需要一个真/假答案,您可以展平数组并调用include:
>> myArray.flatten.include?("c")
=> true
Run Code Online (Sandbox Code Playgroud)
你可以使用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)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |