开发者

Array of Arrays, delete an index based on the contents of the array at the index?

开发者 https://www.devze.com 2023-02-08 11:19 出处:网络
I\'ve been struggling learning how to deal with arrays made up of arrays. Say I had this array: 开发者_StackOverflow中文版my_array = [[\'ORANGE\',1],[\'APPLE\',2],[\'PEACH\',3]

I've been struggling learning how to deal with arrays made up of arrays.

Say I had this array:

开发者_StackOverflow中文版
my_array = [['ORANGE',1],['APPLE',2],['PEACH',3]

How would I go about finding the my_array index that contains 'apple' and deleting that index (removing the sub-array ['APPLE',2] because 'apple' was conatined in the array at that index) ?

Thanks - I really appreciate the help from here.


You can use Array.select to filter out items:

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

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

select will return those items from the, for which the given block (here a != "APPLE") returns true.


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


I tested this, it works:

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

精彩评论

暂无评论...
验证码 换一张
取 消