Наилучшая функция высокого порядка для использования в этом массиве для возврата значения bool, если значение «submit_instance_key» равно 1? - PullRequest
0 голосов
/ 24 сентября 2019

Я ищу наилучшую функцию высокого порядка, которая будет использоваться в этом массиве массивов для возврата значения типа bool, если есть значение submit_instance_key, равное 1.

Я рассмотрел использование filter и reduce но у меня возникают проблемы при работе с вложенными массивами.Я также пытался compactMap, но это меняет форму массива.

var someArray = [["submit_instance_key": 0, "instance_id_key": 4], ["submit_instance_key": 0, "instance_id_key": 4], ["submit_instance_key": 1, "instance_id_key": 5]]

Я надеюсь вернуть Bool, если значение submit_instance_key равно 1.

1 Ответ

1 голос
/ 24 сентября 2019

Лучшая высокоуровневая функция - это та, которая прекращает поиск, как только находит совпадение.contains(where:) - хорошая функция для этой цели.Он принимает замыкание, которое применяется к каждому элементу массива по очереди и останавливается, как только находит элемент, который возвращает true.

var someArray = [["submit_instance_key": 0, "instance_id_key": 4], ["submit_instance_key": 0, "instance_id_key": 4], ["submit_instance_key": 1, "instance_id_key": 5]]

let found = someArray.contains(where: { $0["submit_instance_key"] == 1 })
print(found)

Вывод:

true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...