gpt4 book ai didi

ruby - 从数组中删除一个

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

我有一个包含多个元素的数组。现在我想创建一个新数组,其中删除了其中一个元素。

例子:

a = [1,1,1,2]
delete_index = a.find_index(1)
result = a.clone
result.delete_at(delete_index)
# result is now [1,1,2]

对于如此简单的任务,这段代码看起来真的很难看。我查看了 Array 提供的方法,但找不到更好的方法。

最佳答案

a.delete_at(a.index(1) || a.length)

a.length 处理找不到元素的情况;因为它超出了范围,所以不会删除任何内容,您的返回值将为 nil

如果您的部分问题是对数组的副本执行此操作,只需在 clone 上调用它:

a2 = a.clone ; a2.delete_at(...)

如果你想对每个重复的元素都这样做,你可以将它链接到一个选择重复元素的 block :

a.select { |e| array.count(e) > 1 }.each { |dup| a.delete_at a.index(dup) }

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

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