如何通过数组中的值删除第一个元素?
arr = [ 1, 1, 2, 2, 3, 3, 4, 5 ]
#something like:
arr.delete_first(3)
#I would like a result like => [ 1, 1, 2, 2, 3, 4, 5]
提前致谢
将结果传递Array#find_index
到Array#delete_at
:
>> arr.delete_at(arr.find_index(3))
>> arr
=> [1, 1, 2, 2, 3, 4, 5]
find_index()
将返回与其参数匹配的第一个元素的数组索引。delete_at()
从指定索引处的 Array 中删除元素。
为防止在未找到索引时delete_at()
引发 a TypeError
,您可以使用&&
构造将结果分配给find_index()
变量,并在未找到时使用该delete_at()
变量nil
。&&
如果左侧是false
or ,则右侧根本不会执行nil
。
>> (i = arr.find_index(3)) && arr.delete_at(i)
=> 3
>> (i = arr.find_index(6)) && arr.delete_at(i)
=> nil
>> arr
=> [1, 1, 2, 2, 3, 4, 5]
您还可以使用:-
运算符从数组中删除所需的元素,例如:
$> [1, 2, 3, '4', 'foo'] - ['foo']
$> [1, 2, 3, '4']
希望这可以帮助。