Друг спросил меня, какой из Ruby лучший и эффективный способ добиться эффекта метода JavaScript splice
в Ruby.
Это означает отсутствие итераций для самого массива или копий.
«начать с начала индекса, удалить элементы длины и (необязательно) вставить элементы. Наконец, вернуть удаленные элементы в массив». Это вводит в заблуждение, см. Пример JS ниже.
http://www.mennovanslooten.nl/blog/post/41
Быстрый хак, который не имеет необязательного ] замена:
from_index = 2
for_elements = 2
sostitute_with = :test
initial_array = [:a, :c, :h, :g, :t, :m]
# expected result: [:a, :c, :test, :t, :m]
initial_array[0..from_index-1] + [sostitute_with] + initial_array[from_index + for_elements..-1]
Какая у вас? Одна строка лучше.
Обновление:
// JavaScript
var a = ['a', 'c', 'h', 'g', 't', 'm'];
var b = a.splice(2, 2, 'test');
> b is now ["h", "g"]
> a is now ["a", "c", "test", "t", "m"]
Мне нужен результирующий массив «a», а не «b».