我有一个看起来像这样的字符串数组:
["Greater New York City Area", "Saudi Arabia", "Bahrain", "Greater New York City Area", "Toronto Canada Area", "Nigeria", "Toronto Canada Area", "United Arab Emirates", "Toronto Canada Area", "Egypt", "Egypt", "Bangladesh", "Gurgaon India", "United Arab Emirates", "New Delhi Area India", "Saudi Arabia", "United Arab Emirates", "United Arab Emirates", "Toronto Canada Area", "Pakistan", "New Delhi Area India", "New Delhi Area India", "United Arab Emirates", "Mumbai Area India", "New Delhi Area India"]
Run Code Online (Sandbox Code Playgroud)
我试图将字符串“Greater New York City Area” 与该数组中的每个元素相匹配,并返回另一个包含每个匹配项索引的数组。
对于上面的例子,答案应该是 [0,3]。
我可以通过手动迭代每个元素来做到这一点,但这似乎不是正确的方法。
我需要类似的东西.find_all,但它需要返回索引而不是值。
尝试这个:
a = ["Greater New York City Area", "Saudi Arabia", "Bahrain", "Greater New York City Area", "Toronto Canada Area", "Nigeria", "Toronto Canada Area", "United Arab Emirates", "Toronto Canada Area", "Egypt", "Egypt", "Bangladesh", "Gurgaon India", "United Arab Emirates", "New Delhi Area India", "Saudi Arabia", "United Arab Emirates", "United Arab Emirates", "Toronto Canada Area", "Pakistan", "New Delhi Area India", "New Delhi Area India", "United Arab Emirates", "Mumbai Area India", "New Delhi Area India"]
results_with_index = a.each_with_index.select { |i, idx| i =~ /Greater New York City Area/} # [["Greater New York City Area", 0], ["Greater New York City Area", 3]]
results_with_index.map! { |i| i[1] } # [0,3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2162 次 |
| 最近记录: |