gpt4 book ai didi

ruby - 在 ruby​​ 中按值删除一个数组元素

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:11 26 4
gpt4 key购买 nike

如何删除数组中某个值的第一个元素?

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() 从指定索引处的数组中删除元素。

要防止 delete_at() 在找不到索引时引发 TypeError,您可以使用 && 构造来分配结果find_index() 到一个变量,如果它不是 nil,则在 delete_at() 中使用该变量。如果左侧为 falsenil,则 && 的右侧根本不会执行。

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

关于ruby - 在 ruby​​ 中按值删除一个数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com