如何通过数组中的值删除第一个元素?
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。&&如果左侧是falseor ,则右侧根本不会执行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']
希望这可以帮助。