我想从数组中删除(只有一个)特定数值的元素。
示例:
示例:
x = [1,2,3,2]
x.remove(2)
result: x= [1,3]
但是,我想要得到[1,3,2]
。
谢谢。
x = [1,2,3,2]
x.remove(2)
result: x= [1,3]
但是,我想要得到[1,3,2]
。
谢谢。
如评论中 @7urkm3n 提到的,你可以使用 x.delete_at
来删除第一个出现的元素。
x.delete_at(x.index 2)
> x = [1,2,3,2]
=> [1, 2, 3, 2]
> x.delete_at(x.index 2)
=> 2
> x
=> [1, 3, 2]
你可以使用 slice!(index, 1)
。你可以通过使用 index(element)
获取要删除的元素的第一个索引。
在你的情况下,你只需要执行:x.slice!(x.index(2), 1)
(或者,如已经提到的,只需提供索引即可使用delete_at
)
你可以编写
x = [1,2,3,2]
x.difference([2])
#=> [1, 3, 2]
这里的Array#difference
是我在这里中定义的。由于该方法具有广泛的潜在应用,因此我建议将其添加到Ruby核心中。
假设
x = [1,2,3,2,1,2,4,2]
如果你想要移除第一个 1
,前两个 2
和 4
,你需要写下以下代码:
x.difference([1,2,2,4])
#=> [3, 1, 2, 2]
x.difference([1,2,2,4,4,5])
#=> [3, 1, 2, 2]
会得到相同的结果。
要删除最后一个1
,最后两个2
和4
,请写入
x.reverse.difference([1,2,2,4]).reverse
#=> [1, 2, 3, 2]
1
时,您是想删除特定数字还是数组的第一个数字? - 7urkm3n.delete_at(数组索引)
来删除元素,或者像从[1,2,3,4,1]
到[1,2,3,4]
一样保持唯一性。只需调用x.uniq
即可。 - 7urkm3n