简单的 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/