У меня есть массив строк из одного слова, и я хотел бы добавить «s» в конец каждой строки из одного слова, за исключением второй строки (элемента) в массиве. Я могу легко сделать это, используя 9 строк кода, но предпочел бы сделать это с помощью 3 строк кода.
Вот мой рабочий код, использующий 9 строк.
def add_s(array)
array.each_with_index.collect do |element, index|
if index == 1
element
else element[element.length] = "s"
element
end
end
end
Вот мой сломанный код, когда я пытаюсь использовать только 3 строки.
def add_s(array)
array.each_with_index.map {|element, index| index == 1 ? element : element[element.length] = "s"}
end
Наверху вернется...
array = ["hand", "feet", "knee", "table"]
add_s(array) => ["s", "feet", "s", "s"]
Я пытаюсь получить...
array = ["hand", "feet", "knee", "table"]
add_s(array) => ["hands", "feet", "knees", "tables"]
"s"
к этим словам? А почему вы хотите пропустить второе слово в списке? Это похоже на проблему xy для меня. Вы стремитесь использовать слова во множественном числе? А ты понял, что там нет ног? Пожалуйста, уточните это. Поскольку правило множественного числа более сложное, что, если бы в списке были такие слова, как осьминог или человек? - person spickermann   schedule 24.12.2018