/*jshint multistr:true */
var text = "Hey, I'm Anna, fjlsghfbghr, Anna, jfjgbsldfbadgh;gb, Anna, dhsjfbsfhgbfjdf,jfgbrgg;, Anna";
var myName = "Anna";
var hits = [];
for (var i = 0; i < text.length; i++) {
if (text[i] === "A") {
for (var j = i; j < (i + myName.length); j++) {
hits.push(myName);
}
}
}
if (hits.length === 0) {
console.log("Your name wasn't found!");
} else {
console.log(hits);
}
JavaScript
Не могу понять, что не так в коде
У тебя совершенно неправильный цикл for (var j = i; j < (i + myName.length); j++) {...}. Вместо него надо просто hits.push(myName). Из-за этого цикла ты при каждом появлении слова Anna записываешь его в массив столько раз, сколько в нём букв. Но при этом вообще не проверяешь, что это именно слово "Anna".
Э.l.a.m.a.n Тажибаев
Боже, и вправду, спасибо большое! Я целый день мучаюсь и думаю, что не так! Просто я же это задание на сайте выполняла, а там типо написано, что нужно еще новую переменную для второго цикла j завести.
Нужно, чтобы на консоле выводилось имя Анна, но то кол-во раз, которое есть в тексте (var text)?
Так вообще всё просто, зачем здесь вложенный цикл?
var text = "Hey, I'm Anna, fjlsghfbghr, Anna, jfjgbsldfbadgh;gb, Anna, dhsjfbsfhgbfjdf,jfgbrgg;, Anna";
var myName = "Anna";
var hits = [];
for (var i = 0; i <= text.length; i++) {
if (text[i] == "A") {
name = text.slice(i, i + myName.length);
if (name == "Anna") {
hits.push(name);
};
};
};
document.write(hits);
Имя Anna выводится 4 раза, что не нравится?
Так вообще всё просто, зачем здесь вложенный цикл?
var text = "Hey, I'm Anna, fjlsghfbghr, Anna, jfjgbsldfbadgh;gb, Anna, dhsjfbsfhgbfjdf,jfgbrgg;, Anna";
var myName = "Anna";
var hits = [];
for (var i = 0; i <= text.length; i++) {
if (text[i] == "A") {
name = text.slice(i, i + myName.length);
if (name == "Anna") {
hits.push(name);
};
};
};
document.write(hits);
Имя Anna выводится 4 раза, что не нравится?
Я конечно в javascript не селен
А так if (text[i] === "A") - тройное равно, правда что ли?
hits.push(myName); - надо наверное по символьно вносить, а не всю переменную разом и брать из text
Че должно быть в итоге?
А так if (text[i] === "A") - тройное равно, правда что ли?
hits.push(myName); - надо наверное по символьно вносить, а не всю переменную разом и брать из text
Че должно быть в итоге?
Э.l.a.m.a.n Тажибаев
Да, правда тройное равно)
Что Вы имеете ввиду по символьно? Я новичок в программировании и пока не все могу понять (
Что Вы имеете ввиду по символьно? Я новичок в программировании и пока не все могу понять (
я просто оставлю это здесь... (забудь всё, что написали "оракулы и гуру" выше)
----------
var anna = new RegExp('Anna', 'g');
var names = text.match(anna);
бонус...
----------
names.forEach((name, i) => console.log(++i, name));
для ленивых...
----------
https://repl.it/Hwqn
----------
var anna = new RegExp('Anna', 'g');
var names = text.match(anna);
бонус...
----------
names.forEach((name, i) => console.log(++i, name));
для ленивых...
----------
https://repl.it/Hwqn
Похожие вопросы
- Не могу понять почему код на js не работает.
- Не могу понять! Поделитесь опытом в в JS
- Не могу понять RegExp
- Не могу понять выражение Упростите на JS условие if(i-- && xx + yy <= 4 ), когда все переменные- числа!
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Как можно улучшить код?
- Что означает фронтенд и бэкенд ? (да, да, да я загуглил, но все равно не могу окончательно понять. я тупой как валынок)