2011-02-05 92 views
4

我一直在努力學習如何處理由數組組成的數組。Array of Array,根據索引處數組的內容刪除一個索引?

說我有這個數組:

my_array = [['ORANGE',1],['APPLE',2],['PEACH',3] 

我怎麼會去尋找一個包含「蘋果」和刪除索引(刪除子數組my_array指數[「蘋果」,2],因爲'蘋果「在該指數陣列condined)?

謝謝 - 我真的很感謝這裏的幫助。

回答

6

您可以使用Array.select篩選出的項目:

>> a = [['ORANGE',1],['APPLE',2],['PEACH',3]] 
=> [["ORANGE", 1], ["APPLE", 2], ["PEACH", 3]] 

>> a.select{ |a, b| a != "APPLE" } 
=> [["ORANGE", 1], ["PEACH", 3]] 

select將返回這些項目從,爲此給定塊(這裏a != "APPLE")返回true

+0

這是真棒。我非常感謝,謝謝! – Reno 2011-02-05 05:08:12

6
my_array.reject { |x| x[0] == 'APPLE' } 
+0

我認爲MYYN解構產量(我認爲這就是所謂的)是很好的。 – DigitalRoss 2011-02-05 02:18:19

+1

這是一個變種:`a.reject {| x,y | x =='APPLE'}` – miku 2011-02-05 02:20:20

4

我測試了這一點,它的工作原理:

my_array.delete_if { |x| x[0] == 'APPLE' }