Ruby 数组的数组,是否根据索引处数组的内容删除索引?

Ruby 数组的数组,是否根据索引处数组的内容删除索引?,ruby,Ruby,我一直在努力学习如何处理由数组组成的数组 假设我有这个数组: my_array = [['ORANGE',1],['APPLE',2],['PEACH',3] 我将如何查找包含“apple”的my_数组索引并删除该索引(删除子数组['apple',2],因为“apple”位于该索引的数组中) 谢谢-非常感谢您的帮助。您可以使用以下选项筛选项目: >> a = [['ORANGE',1],['APPLE',2],['PEACH',3]] => [["ORANGE", 1], [

我一直在努力学习如何处理由数组组成的数组

假设我有这个数组:

my_array = [['ORANGE',1],['APPLE',2],['PEACH',3]
我将如何查找包含“apple”的my_数组索引并删除该索引(删除子数组['apple',2],因为“apple”位于该索引的数组中)

谢谢-非常感谢您的帮助。

您可以使用以下选项筛选项目:

>> 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

我测试了它,它可以工作:

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

虽然我认为MYYN的解构收益率(我认为这就是它的名字)很好。这是一个变化:
A.reject{x,y{x='APPLE'}
Girish Rao,这很好,很好。我想,在实践中,我可以说
拒绝
将适用于任何
可枚举
,而不仅仅是
数组
,但这个论点可能会起到两方面的作用:因为
delete\u if
只为
Array
实现,所以您可能可以指望它运行得很快。您会发现
reject
及其对应的
select
delete\u if
使用了更多。我想这是因为它们更通用,使用更频繁,因此更容易记住。谢谢,伙计,真的很感激。我不知道我应该接受MYYN的回答还是你的。。。掷硬币。你们真是太棒了。使用delete_if对我来说真的很容易理解。我喜欢这个地方——3个几乎是即时的答案,所有的答案都不同,而且都有效。我学到了很多-谢谢大家!