Как String массив превратить в Int массив (многомерный)? Есть массив [["9", "6", "7", "8", "5"], ["1", "1", "1", "1", "1"]], нужно получить новый [[9, 6, 7, 8, 5], [1, 1, 1, 1, 1]]
Делаю и получаю ошибкуlet arr = [["9", "6", "7", "8", "5"], ["1", "1", "1", "1", "1"]]
let mapArr = arr.map{Int($0).map{Int($0)}}
хотя сама по себе конструкция рабочая и дает результатlet arr = [[1,2,3],[4,5,6]]
let mapArr = arr.map{$0.map{$0 * 2}}
mapArr // [[2, 4, 6], [8, 10, 12]]

21 Авг 2019 в 06:23
222 +1
0
Ответы
1

Для преобразования String массива в Int массив многомерный, Вам нужно использовать двойное отображение (map) для каждого элемента массива. Ниже пример кода, который покажет, как это сделать:

let arr = [["9", "6", "7", "8", "5"], ["1", "1", "1", "1", "1"]]
let mapArr = arr.map{ $0.map{ Int($0) ?? 0 } }
print(mapArr)

Этот код пройдет каждый элемент во внешнем массиве, а затем для каждого элемента внутреннего массива попытается преобразовать его в Int. Если преобразование не удалось (например, если элемент не является числом), оно заменит его на 0.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир