在Ruby中通过索引从数组中删除多个元素

9

我有一个数组。例如,

x = [1,2,3,4,5]

我知道这个命令。
x.delete_at(i)

将从数组中删除索引为i的元素。但根据我所读的,它只能处理一个参数。

假设我有一个变量存储了我想要从x中删除的索引。例如,

y = [0,2,3]

我的问题是:是否可以使用另一个数组来删除你想要删除的索引处存储的多个元素?
实质上,就像这样:
x.delete_at(y)

感谢您! :)
1个回答

8
您可以使用with_indexreject一起使用:
x.reject.with_index { |e, i| y.include? i } #=> [2, 5]

@AndreyDeineko 我认为这个回答了你的问题。另外,顺便问一下,你建议我删除这个答案吗? - Sagar Pandya
1
谢谢提供链接!你使用了 reject,而链接中的问题使用了 delete_if,所以我认为这是一些新的东西,不会建议你删除它 :) 当然,最终决定权在你手中 :) - Andrey Deineko
我们可能也应该在这里用 _ 替换 e,但实际上并没有什么大不了的。 - Sagar Pandya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接