tags.length.times.map
И зачем флэт мап, если мы заранее знаем, что массив без вложенных?