Использование .flatten
- это удобный небольшой трюк, чтобы взять массив суб-массивов и превратить его в один массив. Например: [[1,3],2,[5,8]].flatten
=>[1,3,2,5,8]
Вы можете даже включить nil [1,[2,nil],3].flatten
приведет к [1,2,nil,3]
.Ruby - элегантно сгладить массив, но не игнорировать пустые подмассивы
Этот метод очень полезен при вложении метода .map
, но как бы вы определили пустой подматрица? Например: [1,[2,3],[],4].flatten
вернется [1,2,3,4]
... но что, если мне нужно следить за пустой массив к югу возможно преобразовать результат в [1,2,3,0,4]
или [1,2,3,nil,4]
Есть ли элегантный способ сделать это? Или мне нужно написать какой-то метод для итерации через каждый отдельный под-массив и проверить его один за другим?
вы должны проверить вложенные пустой ли массивы, то есть '[1, [2, 3, []], 4]'? – eiko