Задание
Вам дан массив целых чисел a и два целых числа x и y.Подсчитайте количество элементов в массиве так, чтобы `x ≤ a [i] ≤ y, где i - индекс элемента, основанный на 0.
Предел кода
Менее 48 символов.
Пример
Для a = [2, 5, 6, 7, 1, 3, 4, 11, 56, 49], x = 1 и y = 7, на выходе должно быть 7.
элементы 2, 5, 6, 7, 1, 3, 4 должны быть подсчитаны.
У меня естьустал filter
, reduce
и не может мыслить каким-либо иным способом, не увеличивая его до 48 символов.
Здесь можно использовать filter
checkRange=(a,x,y)=>a.filter(i=>i>=x&&i<=y).length
Использование reduce
checkRange=(a,x,y)=>a.reduce((c,i)=>i>=x&&i<=y?++c:c,0);
Пример вызова функции
a =[95,92,27,55,55,20,40,8,7,45,87,14,44,35,64,84,95,85,69,47,53,49,95,54,97,7,67,31,76,97,7,24,82,61,10,34,34,85,66,96,65,2,84,4,68,74,46,50]
x = 64
y = 76
checkRange(a,x,y) // Expected: 8
На данный момент я получаю более 50+ символов .... и мне нужно уменьшить их до 47.
До сих пор есть некоторые подсказки ...
- Используйте другой более короткий метод
- Подсчитайте значения индекса, вместо использования
length
. - Не нужно
<= or >=
, нужно всего лишь ==
Я получил их от https://www.codewars.com/kata/one-line-task-check-range/discuss/javascript