ruby - 将数组的元素移动到 Ruby 中的另一个数组

标签 ruby arrays variables element

简单的 ruby 问题。假设我有一个包含 10 个字符串的数组,我想将数组 [3] 和数组 [5] 中的元素移动到一个全新的数组中。新数组将只有我从第一个数组移出的两个元素,而第一个数组将只有 8 个元素,因为其中两个已被移出。

最佳答案

使用 Array#slice! 从第一个数组中删除元素,并使用 Array#<< 将它们附加到第二个数组:

arr1 = ['Foo', 'Bar', 'Baz', 'Qux']
arr2 = []

arr2 << arr1.slice!(1)
arr2 << arr1.slice!(2)

puts arr1.inspect
puts arr2.inspect

输出:

["Foo", "Baz"]
["Bar", "Qux"]

根据您的具体情况,您可能会发现数组上的其他方法更有用,例如 Enumerable#partition :

arr = ['Foo', 'Bar', 'Baz', 'Qux']
starts_with_b, does_not_start_with_b = arr.partition{|word| word[0] == 'B'}

puts starts_with_b.inspect
puts does_not_start_with_b.inspect

输出:

["Bar", "Baz"]
["Foo", "Qux"]

关于ruby - 将数组的元素移动到 Ruby 中的另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145376/

相关文章:

java - 搜索前将 ParseQuery 数组转为小写

javascript - 第一次在JS中使用API​​;需要一些数组和页面加载指导

ruby-on-rails - Ruby - 实现自定义排序

ruby 单元测试错误 : "you should require ' minitest/autorun' instead.“

javascript - 如何根据类别附加正确的详细信息?

arrays - 如何在 Swift 中刷新文件中的数组内容?

javascript - 在全局范围内使用 "let"创建的变量与在循环内使用 "var"创建的变量

oracle - 在 Oracle 中创建变量

arrays - Swift 3.1 : Array too large to be initialized?(程序卡住)

ruby-on-rails - 如何让我的 Rails 时间输入字段遵守服务器时区?