Причина, по которой вы видите дополнительное пространство, в том, что массивы в ruby проиндексированы 0, поэтому у вас есть элемент массива nil, потому что ваша первая вставка - это индекс 1
x = []
x[1] = "test"
Это создает массив следующим образом:
[
nil,
"test"
]
Если вы создали пустой массив с именем x
и присвоили x[10] = "test"
, у вас было бы 10 нулевых значений и слово "test" в вашем массиве.
Итак, ваш массив перед объединением на самом деле:
[nil, "Thi1s", "is2", "3a", "T4est"]
У вас есть пара вариантов:
- Измените ваши строки, чтобы начать с нуля
- Измените свое назначение, чтобы скорректировать смещение (вычесть одно)
- Используйте
compact
перед тем, как присоединиться (это удалит nils)
- Используйте
strip
, как вы заметили
Я бы предложил compact
, потому что это решило бы несколько крайних случаев (таких как "пробелы" в ваших числах.
Дополнительная информация в массиве документов