ueruxon
@ueruxon
Только начал учится.

Как работает код?

Решал задачки на КодВарс и после решение оной посмотрел ответы других людей. И у одного человека был такой код
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
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
@RidgeA
https://developer.mozilla.org/en-US/docs/Web/JavaS...
https://developer.mozilla.org/en-US/docs/Web/JavaS...

что за аргумент "а" и зачем он нужен если его не используют?

Нельзя просто так взять второй аргумент функции, не указав первый в сигнатуре (на самом деле можно через arguments (но не для стрелочных функций) или spread-оператор, но судя по всему автор хотел сделать код как можно короче).

x.every((a,i) => x.includes(i))
для каждого элемента массива х проводится проверка является ли индекc элемента (i) элементом массива. Если хотя бы один индекс не является элементом массива, то every вернет false
[1, 2, 3].includes(0) // false
[1, 2, 3].includes(1) // true
[1, 2, 3].includes(2) // true
[1, 2, 3].includes(3) // true
[1, 2, 3].includes(4) // false
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы