Решал задачки на КодВарс и после решение оной посмотрел ответы других людей. И у одного человека был такой код
function isAllPossibilities(x){
return x.length > 0 ? x.every((a,i) => x.includes(i)) : false;
}
Я понимаю проверку тут и все дела, но вот что конкретно здесь происходит?
x.every((a,i) => x.includes(i))
Для каждого элемента x мы вызываем функцию, ок, я это понял. Но вот дальше я потерялся: что за аргумент "а" и зачем он нужен если его не используют? Что в этом случае значит i и почему мы его подставляем в метод инклюд? Знаю что он вернет тру или фолс, но вот конкретно с чем он его сравнивает? Не понимаю..
Я прочитал на MDN за эти 2 метода, но так и не понял что они делают конкретно в этом примере. Может кто объяснить для непонятливого?
P..S если кому нужно задание то вот его суть:
Функция isAllPossibilities получает массив x, и после определенной проверки должна вернуть true или false. Суть проверки чтобы каждый элемент попадал в диапазон от a до n где: где a = 0 а n длинна массива (linght-1). Как то так.
Ну и собственно пример
x=[1,2,0,3],
x.length-1=3
a включает [0,3], поэтому функция должна возвращать true