Я работаю над и выключаю игровое приложение на основе игрового шоу Countdown. До сих пор я был в состоянии заставить пользователя выбирать гласные и согласные и вводить слово, которое проверяет, содержит ли введенное слово те же буквы, которые были сгенерированы. Я создал анонимную функцию, которая использует jQuery, чтобы проверить текстовый файл словаря, чтобы увидеть, есть ли он в списке. Тем не менее, я сталкиваюсь с проблемами и продолжаю получать предупреждающее сообщение: «Функции, объявленные в циклах, ссылающихся на переменную внешней области видимости, могут привести к путанице в семантике».
Я не уверен, что я делаю неправильно, см. Код ниже:
$(".submission").hide();
//assigning letter container class to variable
var letterContainer = document.querySelector(".letter-container");
function pickFrom(letters) {
// if the length of the letter container is less than 8
if (letterContainer.innerHTML.length < 8) {
//add letters to the letter container
letterContainer.innerHTML += rando(letters);
}
//once letter container length reaches 8
if (letterContainer.innerHTML.length === 8) {
//show submission input and button
$(".submission").show();
//remove letter buttons after 8 letters have been chosen by user
$(".letter-btn").hide();
//assign given letters from letter container to a variable
var givenLetters = letterContainer.innerHTML.split("");
var inputWord = document.querySelector(".enter-word").value;
document.querySelector(".submit-word").addEventListener("click", function() {
var inputWord = document.querySelector(".enter-word").value.split("");
if (inputWord.length <= 8) {
//
var isValid;
for (var i = 0; i < inputWord.length; i++) {
// console.log(inputWord[i]);
if (givenLetters.includes(inputWord[i])) {
var indexPosition = givenLetters.indexOf(inputWord[i]);
givenLetters.splice(indexPosition, 1);
var newWord = inputWord.join("").toLowerCase();
$.get("https://raw.githubusercontent.com/cpog19901/Countdown/master/text/english3.txt", function(contents) {
//contents variable now contains the contents of the textfile as string
//check if file contains the word entered by user
var hasString = contents.includes(newWord);
//outputs true if contained, else false
console.log(hasString);
});
isValid = true;
} else {
console.log(inputWord[i]);
console.log("no");
isValid = false;
}
}
if (isValid == true) {
console.log("This is a valid word");
}
else if (isValid == false) {
console.log("This is NOT a valid word");
}
}
});
}
}
Мне нужно, чтобы все утверждения были истинными, включая анонимную функцию, чтобы она информировала пользователя это верное слово.