Я бы хотел найти ближайшее меньшее значение в массиве чисел. Например, если у меня есть:
[1, 4, 6, 9, 14, 39]
И я ищу ближайшее значение меньше, чем:
8
Функция вернет:
6
Кроме того, если я передам число, превышающее максимальное значение в массиве, оно должно вернуть максимум. Если я пропущу число меньше минимального, оно должно вернуть ноль.
Я попытался сделать это, используя функцию first
для массивов, однако это само по себе не дает желаемого результата, так как мне нужно что-то вроде этого:
numbers.first(where: { $0 <= target && $1 < target })
но, к сожалению, это недопустимо. Какие-либо предложения? Я знаю, что это можно сделать довольно просто с помощью цикла while, однако я надеялся, что будет более чистый и функциональный способ.