#javascript #arrays
#javascript #массивы
Вопрос:
я пытаюсь перебрать слово и проверить, существует ли в нем буква-указатель или нет, но по какой-то причине условие в операторе if не работает.
Main.UpdateLetter = function(letter) {
Main.Changes = 0;
for(i = 0 ; i < Main.word.length ; i ){
Main.wordArray[i] = Main.word.charAt(i);
console.log(Main.wordArray[i]);
if ( Main.wordArray[i] == d ) {
alert("found letter");
} else {
console.log("not found");
}
}
}
Комментарии:
1. Пожалуйста, отредактируйте свой ответ и очистите отступ.
2. Что такое
d
? Как вы его инициализируете?3. Я подозреваю, что вы хотите сравнить
Main.wordArray[i] === letter
, чтобы использовать аргумент функции…
Ответ №1:
Почему вы делаете это таким образом, Java Script предоставил вам много вариантов, вы можете сделать это, используя либо JavaScript String includes(), либо метод indexOf()
включает метод ()
var str = "Hello world, welcome to the universe.";
var n = str.includes("world");
Результатом n будет:true
Метод includes() определяет, содержит ли строка символы указанной строки.
Этот метод возвращает true, если строка содержит символы, и false, если нет.
Метод indexOf()
var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome");
Результатом n будет:13
Метод indexOf() возвращает позицию первого вхождения указанного значения в строке.
Этот метод возвращает значение -1, если искомое значение никогда не встречается.
Комментарии:
1. спасибо за помощь, но я пытаюсь выяснить, что не так с кодом здесь….
2. в вашем коде вы пытаетесь сопоставить символ d, чтобы сопоставить символ, напишите как «d», потому что d используется как переменная
Ответ №2:
Возможно, вы пытаетесь сделать это сложным способом. Попробуйте функцию indexOf. Этот метод возвращает позицию первого вхождения указанного значения в строке. Этот метод возвращает -1, если значение для поиска никогда не встречается, например:
var x = Main.word.indexOf("d");
if( x > -1 ){
alert("found letter at position " x);
}
else{
alert("Letter not found");
}
Ответ №3:
Я думаю, это то, что вы хотите!
for (var i = 0, len = Main.word.length; i < len; i ) {
if(Main.word.charAt(i) == "A"){
alert("found letter");
}else{
console.log("not found");
}
}
Ответ №4:
трудно понять, что вы пытаетесь сделать, я подозреваю, что вы пытаетесь использовать ООП-подход, чтобы либо определить, присутствует ли буква в какой-то строке, либо указать, что имя метода UpdateLetter
означает, что вы хотите заменить букву какой-то другой строкой…
вот пример реализации, как это может быть достигнуто с помощью прототипического конструктора наследования и метода replace:
// object type definition (sometimes called "class")
function Main (word) {
this.word = word;
};
Main.prototype.wordHasLetter = function(letter) {
return this.word.indexOf(letter) !== -1;
};
Main.prototype.replaceLetterInWord = function(letter, replacement) {
var regex = new RegExp(letter, "g");
this.word = this.word.replace(regex, replacement);
};
// create instance of the type Main
var main = new Main("abcabc");
// sample usage of the methods
console.log("main.word is:", main.word)
if (main.wordHasLetter("a")) {
console.log("found letter")
} else {
console.log("not found")
}
main.replaceLetterInWord("a", "x");
console.log(main.word);