gpt4 book ai didi

ruby - 比较除元素 x、y、z 之外的两个数组(ruby)

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

还有其他更简单、更好的方法吗?

require 'pp'

a1 = ["02/28/10","Webinars","131","0","26 Feb 2010","0","3d, 8h, 49m, 18s"]
a2 = ["02/20/10","Webinars","131","9","26 Feb 2010","0","3d, 8h, 49m, 18s"]

def compare(array1,array2,ignore)

tmp1 = Array.new
tmp2 = Array.new
0.upto(array1.length-1) {|index|
if !ignore.include?(index)
tmp1 << array1[index]
tmp2 << array2[index]
end
}
if tmp1 == tmp2
return true
else
return false
end
end

pp a1
pp a2
puts
puts compare(a1,a2,[0,3])

输出是

["02/28/10", "Webinars", "131", "0", "26 Feb 2010", "0", "3d, 8h, 49m, 18s"]
["02/20/10", "Webinars", "131", "9", "26 Feb 2010", "0", "3d, 8h, 49m, 18s"]

true

最佳答案

最简单的代码(需要 Ruby 1.8.7 或更高版本):

def compare(array_a, array_b, ignore_list)
array_a.zip(array_b).each_with_index.all? do |a, b, idx|
a == b or ignore_list.include? idx
end
end

我怀疑它也会更快(因为它使用单个 zip 而不是为每个项目单独询问数组)——尽管这可能不是速度非常重要的情况。

顺便说一句,几乎任何时候我都直接在 Ruby 中索引数组(如 some_array[i])而不是使用高阶方法如 mapeach,我认为这表明我可能在标准库中遗漏了一些东西,并且该算法的效率可能低于高度优化的库函数。

关于ruby - 比较除元素 x、y、z 之外的两个数组(ruby),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2368508/

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