Вы можете использовать joined()
для выравнивания вложенных массива в одну, и применить поиск contains
на соединенном массива:
let elements2 = [[10], [20, 30], [40, 50]]
if elements2.joined().contains(50) {
print("Contains 50!")
}
Заметим, что вам не нужно включать аннотацию типа для elements2
выше, поскольку тип выводится (до [[Int]]
).
Другой альтернативой было бы использовать contains
, чтобы проверить каждый внутренний массив для 50
элемента, и действовать, если какой-либо из внутренних массивов содержит значение:
if elements2.map({ $0.contains(50) }).contains(true) {
print("Contains 50!")
}
или, используя reduce
сложить внутренние массивы булево, проверка возможного включения 50
в каждом внутреннем массиве (довольно подобный подход к приведенной выше)
if elements2.reduce(false, { $0 || $1.contains(50) }) {
print("Contains 50!")
}
Цените ваше объяснение с альтернативами – Coder221
@ Coder221 рад помочь. Добавлена также альтернатива «уменьшить», но я бы лично предпочел бы «join()» (лучшая семантика, imo). – dfri
Это хорошо знать. – Coder221