!Array.includes() = не включает (в js)?
Я пытаюсь использовать
if (!array.includes()) {чтобы проверить введенное пользователем слово против случайно выбранного слова в массиве, чтобы увидеть, сколько букв эти два имеют общего, и вырезать все слова в массиве, которые не имеют этих букв. Но !array.includes (), похоже, ведет себя не так, как я ожидал-он вырезает все значения из массива.
Что я уже пробовал:
Вот как выглядит соответствующий код:
comWords = inputWord + compWord; comWords = comWords.split('').sort().join(''); match = comWords.length - comWords.replace(/(\w)\1+/g, '$1').length; for (let e = 0; e < 5; e++) { for (let f = 0; f < possWords.length; f++) { if (match === 0) { if (possWords[f].includes(compWord[e])) { possWords.splice(f, 1); } } else { if (!possWords[f].includes(compWord[e])) { possWords.splice(f, 1); } } } }
Первый оператор includes (), кажется, работает нормально, но я, кажется, испортил его !includes (). Это то, как вы проверяете, если что-то не включает или я нахожусь здесь на совершенно неправильном пути?
Richard Deeming
Когда вы удаляете элементы из массива в цикле, всегда лучше работать в обратном направлении. В противном случае вы будете в конечном итоге пропускать элементы.
arr = [0, 1, 2]; i = 0; // arr[i] = 0 arr.splice(i, 1); // arr = [1, 2]; i++; // i = 1; // arr[i] = 2; // loop has skipped 1