Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Циклы и массивы (https://javascript.ru/forum/misc/84028-cikly-i-massivy.html)

TrumpTower 16.05.2022 15:24

Циклы и массивы
 
Здравствуйте, нужна помощь и небольшая консультация. Я только начал изучение JS, и мне дали задание с которым сижу уже несколько дней. У меня есть массив с городами, как мне сделать исключение повторяющихся городов из массива и из поля ввода prompt, и как не использовать последнюю букву в поле prompt, если она Ъ Ь или Ы
вот мой код. cities - массив с городами


while (true) {
let player = prompt('Введите город').slice(-1);
let result = 0;
for (let i = 0; i < cities.length; i++) {
    if (cities[i].charAt(0) === player) {
        result = cities[i];
    }
}
if (result) {
    alert(result);
} else {
    alert('Не найдено');
}
}

рони 16.05.2022 16:07

TrumpTower,
const cities = [];
        while (true) {
            let city = prompt('Введите город');
            if (!city) break;
            city = city.replace(/[ЪЬЫ]+$/ig, '');

            let includes = cities.includes(city);
            if (includes) {
                alert(`${city} такой город есть в списке`);
            } else {
                cities.push(city);
                alert(`${city} добавлен в список`);
            }
        }

TrumpTower 16.05.2022 16:48

у меня по заданию должна получиться игра Города, т.е. я в prompt ввожу город, а из массива должен появиться ответ на последнюю букву моего города, мне нужно исключить повторения при вводе в prompt и снова появится должно окно для ввода, и переход к следующей букве, если последняя Ъ Ь или Ы.
Для исключения повторений мне нужно создать новый массив с результатами поля prompt?

рони 16.05.2022 17:10

TrumpTower,
кодируйте.

TrumpTower 16.05.2022 18:13

спасибо за совет..

рони 16.05.2022 18:28

TrumpTower,
ваш алгоритм не полный, пишите код и задавайте вопросы, по мере обнаружения не стыковок.

рони 16.05.2022 19:08

игра города название на последнюю букву
 
TrumpTower,
const cities = ['Москва'];
        let current = 'Москва';
        while (true) {
            lastLetter = current.match(/[^ЪЬЫ](?=[ЪЬЫ]*$)/i)[0];
            lastLetter = lastLetter.toUpperCase();
            let city = prompt(`${current}, введите город на букву ${lastLetter}`);
            if (!city) break;
            let includes = cities.includes(city);
            let firstLetter = city.startsWith(lastLetter)
            if (includes) {
                alert(`${city} такой город есть в списке`);
            }
            else if(firstLetter) {
               current = city;
               cities.push(city);
               alert(`${city} добавлен в список`);
            }

            else {
               alert(`${city} начинается не с ${lastLetter}`);
            }
        }


Часовой пояс GMT +3, время: 06:04.