在Ruby中,有没有快速获取数组中所有其他项的方法?奇数或偶数项的值中包含0.我希望能够像这样使用它:

array1 += array2.odd_values

puts array2.odd_values.join("-")

f或 example

更新

This give exactly what I'm after but I'm sure there is a sh或ter version.

array1.each_with_index do |item,index| 
  if (index %2 ==0) then 
    array2.push(item) 
  end
end

推荐答案

a = ('a'..'z').to_a

a.values_at(* a.each_index.select {|i| i.even?})
# => ["a", "c", "e", "g", "i", "k", "m", "o", "q", "s", "u", "w", "y"]

a.values_at(* a.each_index.select {|i| i.odd?})
# => ["b", "d", "f", "h", "j", "l", "n", "p", "r", "t", "v", "x", "z"]

所以,按照要求

class Array
  def odd_values
    self.values_at(* self.each_index.select {|i| i.odd?})
  end
  def even_values
    self.values_at(* self.each_index.select {|i| i.even?})
  end
end

Ruby相关问答推荐

ruby:比较两个单词并从中提取不常见的字母

类似于模块的 attr_accessor 和 attr_reader 的东西?

ASDF 上缺少 Ruby 版本

碰撞检测测试中对象的 Nil 类

判断数组中的字符串是否包含另一个数组中的子字符串

多线程期间的 MRI ruby​​ 内存访问特性

Ruby open-uri 重定向被禁止

从 ruby​​ 脚本运行另一个 ruby​​ 脚本

如何使用 RSpec 忽略或跳过测试方法?

Ruby on Rails:你能把 Ruby 代码放在 YAML 配置文件中吗?

在 Ruby 中覆盖 == 运算符

Ruby on Rails 中是否有简写 if(没有 else)语句?

截断、事务和删除数据库策略的区别

在本地覆盖 Vagrant 配置设置(每个开发人员)

`File` 对象访问模式的区别(即 w+, r+)

如何使用 link_to Ruby on rails 添加确认消息

使用 RSpec 测试哈希内容

如果公司使用 C++、C# 或 Java 作为应用程序语言,为什么要学习 Perl、Python、Ruby?

遍历数组的前 n 个元素

如何判断数组是否有重复项?