@sportredwhite

Как из одномерного массива сделать многомерный?

Подскажите плз, как сделать из одномерного массива в многомерный?
8 массивов по 4 элемента

var arr = ["1", "2", "3", "4", "5", "6","7", "8", "9","10", "11", "12","13", "14", "15","16", "17", "18","19", "20", "21","22", "23", "24","25", "26", "27","28", "29", "30","31", "32"]

var result = [[String]]()
var k = 0
for i in 0..<8  {
    for j in 0..<4 {
        result[i].append(arr[k])
        k += 1
    }
}

print(result)


Понимаю, что массив пуст поэтому не можем обратиться по индексу. Но не знаю как длину задать как в java
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
doublench21
@doublench21 Куратор тега Swift
var arr = [
    "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
    "11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
    "21", "22", "23", "24", "25", "26", "27", "28", "29", "30",
    "31", "32"
]

var res = [[String]]()
for x in stride(from: 0, through: 31, by: 4) {
    res.append(Array(arr[x...x + 3]))
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
briahas
@briahas
ObjC, Swift, Python
Интернеты (стаковерфлоу) нашли подобное решение:
extension Array {
    func chunked(by chunkSize: Int) -> [[Element]] {
        return stride(from: 0, to: self.count, by: chunkSize).map {
            Array(self[$0..<Swift.min($0 + chunkSize, self.count)])
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы