我有兩個數組:如何找到另一個索引數組中的元素?
["mo", "tu", "we", "th", "fr", "sa", "su"]
和[1, 5]
什麼是最短的,最乾淨的方法,使從第一數組的新陣列,基於第二陣列的指標? 我願做這樣的事情:
["mo", "tu", "we", "th", "fr", "sa", "su"][[1, 5]]
(不可能這樣)
這將產生["tu", "sa"]
。
這怎麼辦?提前致謝!
我有兩個數組:如何找到另一個索引數組中的元素?
["mo", "tu", "we", "th", "fr", "sa", "su"]
和[1, 5]
什麼是最短的,最乾淨的方法,使從第一數組的新陣列,基於第二陣列的指標? 我願做這樣的事情:
["mo", "tu", "we", "th", "fr", "sa", "su"][[1, 5]]
(不可能這樣)
這將產生["tu", "sa"]
。
這怎麼辦?提前致謝!
試試這個如下使用Array#values_at
a = ["mo", "tu", "we", "th", "fr", "sa", "su"]
b= [1, 5]
c = a.values_at(*b)
# => ["tu", "sa"]
select
和with_index
可以鏈接到採摘,從一個數組的某些元素:
["mo", "tu", "we", "th", "fr", "sa", "su"].select.with_index {|_, index| [1, 5].include?(index)}
# => ["tu", "sa"]
這裏有一對夫婦對這個答案的Ruby新手注意事項:
with_index
方法可以與任何真棒Ruby迭代器鏈接以獲得訪問到索引(類似於each_with_index
)。在這種情況下,沒有select_with_index
,所以我們使用select.with_index
。
對於'values_at' +1。 –