You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby:如何检查两数组元素一致性、同索引匹配并优化输出?

解决方案

实现代码

arr = [1,4,6,3]
arr2 = [3,4,3,6]

# 处理同索引元素匹配的情况,输出"O"
arr.each_with_index do |item, idx|
  puts "O" if item == arr2[idx]
end

# 计算两数组的所有共同元素(自动去重)
all_common_elements = arr & arr2
# 筛选出同索引匹配的元素(去重避免重复计算)
index_matched_elements = arr.each_with_index.filter { |item, idx| item == arr2[idx] }.uniq

# 若存在"元素在另一数组但不同索引"的情况,输出一次"X"
puts "X" unless (all_common_elements - index_matched_elements).empty?

运行结果

O
X

逻辑说明

  1. 同索引匹配输出"O":通过each_with_index遍历数组,逐个对比对应索引的元素,相等则输出"O"。
  2. 避免重复输出"X":
    • 用arr & arr2快速获取两数组的所有共同元素(自动去重);
    • 筛选出已经在同索引位置匹配的元素,再从共同元素中剔除这部分;
    • 只要剩余元素不为空,说明存在"元素存在但不同索引"的情况,仅输出一次"X"。

如果你的需求是每个不同的"存在但不同索引"元素各输出一次"X",可以把最后一步的puts "X"改成:

(all_common_elements - index_matched_elements).each { puts "X" }

这种情况下运行结果会是:

O
X
X

内容的提问来源于stack exchange,提问作者Revanth Rockie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 21:30:11