возвращаемая позиция значений, попадающих в диапазон массива - PullRequest
0 голосов
/ 19 апреля 2020

Есть похожие вопросы, но я все еще не могу получить правильный синтаксис, в основном я хочу вернуть расположение всех элементов между моими двумя указанными значениями в массиве. Так что для приведенного ниже кода он должен возвращать 1, 2, 4, 6, так как они находятся между минимальным и максимальным значениями.

Я предполагаю, что мне нужно использовать функцию карты, тоже создать новый массив, и я использую ... для описания диапазона.

   let lowRange = 3.4
   let highRange = 7.8
   let mySampleArray = [3.5,6.3,9.3,5.7,10.2,2.2]


   let desiredRage = mySampleArray.map {lowRange...highRange} // this is the bit that's wrong

   print (desiredRage)

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете отфильтровать индексы вашей коллекции и передать предикат, чтобы проверить, содержит ли нужный диапазон элемент в позиции индекса:

let low = 3.4
let high = 7.8
let array = [3.5, 6.3, 9.3, 5.7, 10.2, 2.2] 

let indices = array.indices.filter { low...high ~= array[$0] }  

print(indices)  // "[0, 1, 3]\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...