Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 02.11.2021
Сообщений: 55

Как описать проверку на вхождение в аргументах функции?

25.11.2021, 01:57. Показов 1442. Ответов 4

Студворк — интернет-сервис помощи студентам
Напишите функцию myReplace(s1, s2, s3), которая будет принимать три строковых аргумента s1, s2, s3 и заменять в первом аргументе s1 все слова, совпадающие со вторым аргументом s2, на третий аргумент s3. Функция должна возвращать изменённую строку. Например, вызов

JavaScript
1
 myReplace(«Ехал Грека, через реку», «р», «л»)
должен вернуть строку «Ехал Глека, челез леку»

Примечание: эта задача является частным случаем одной из предыдущих задач. Она более простая, позволяет отдохнуть и приступить к следующим задачам. Внимание, функция должна учитывать регистр слов.*/

Примерно понимаю, как делать, но как описать проверку на вхождение s2 в s1 не могу понять. Или разбивать строку по символам и проверять или через filter?


JavaScript
1
2
3
4
5
6
7
8
9
10
11
 let s1='Ехал Грека через реку';
let s2='ре';
let s3='ле'
 
function myReplace(s1,s2,s3){
   
       
s1 =s3.replaceAll(s2)
   
 
    return   }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2021, 01:57
Ответы с готовыми решениями:

Как в С сделать проверку на вхождение в диапазон?
Добрый вечер! Появился вопросик. Как в С сделать проверку на вхождение в диапазон. ну например входит ли символ из чаровского массива в...

Как сделать проверку на вхождение слова в RichTextBox
нужно для создания компилятора... например: Если отсутствует START(); , то программа пишет ошибку, а если есть, то компилирует, и если...

Описать каждую строчку кода функции либо описать как осуществляется решение этой данной функции
Дана функция и хотелось бы узнать как происходит решение это функции или же подписать каждую строку что она делает. function sumHex(s1:...

4
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
25.11.2021, 06:00
Цитата Сообщение от oxy2388 Посмотреть сообщение
Или разбивать строку по символам и проверять или через filter?
filter() уменьшает количество элементов.

flatMap() и reduce() изменяют количество элементов в любую сторону как угодно.

map() строго не изменяет количество элементов.

Можете проверить на разных примерах.

-------------------
map() :
JavaScript
1
2
3
        function myReplace(s1, s2, s3) {
            return [...s1].map(e => e === s2 ? s3 : e).join("");
        }
1
1 / 1 / 0
Регистрация: 02.11.2021
Сообщений: 55
26.11.2021, 04:45  [ТС]
у меня пока без функции только получилось и без /gi/
JavaScript
1
2
3
4
5
6
7
let s1='Ехал Грека через реку';
    let s2='ре';
    let s3='ле';
    let str;
    str=s1.replaceAll('ре',`ле`); 
   
   console.log(str);
Как тут быть? Подскажите пожалуйста

Добавлено через 30 минут
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
let s1='Ехал Грека через реку ';
let s2 = 'ре';
let s3 = 'ле';
 
    
function autoReplace(s2, s3, s1) {
if(!arguments.length) return false;
for(let key of s2)
s1 = s1.replace(new RegExp(key, 'gi'), change);
return s1;
}
console.log( autoReplace(s2, s3, s1) );
А как с map можно сделать? Подскажите, пожалуйста, если возможно...Или еще интересные варианты?
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
26.11.2021, 07:31
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

oxy2388, очередная задача с непонятным смыслом и данными, недостаточными для тестирования.
Цитата Сообщение от oxy2388 Посмотреть сообщение
эта задача является частным случаем одной из предыдущих задач. Она более простая, позволяет отдохнуть и приступить к следующим задачам.
Насколько частный случай? Насколько более простая?

В тестовом примере мы чётко видим, что ОДИН символ надо заменить на другой ОДИН символ.

Решение не подходит, оно написано неверно. Вот тебе новое условие задачи с новым смыслом?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function myReplace(s1, s2, s3) {
    let result = "";
    let position = 0, position2;
    while (true) {
        position2 = s1.indexOf(s2, position);
        if (position2 < 0) {
            result += s1.slice(position);
            return result;
        }
        result += s1.slice(position, position2) + s3;
        position = position2 + s2.length;
    }
}
 
let s1 = 'Ехал Грека через реку ';
let s2 = 'ре';
let s3 = 'ле';
 
console.log(myReplace(s1, s2, s3));
Тут кстати изначальный смысл, чтобы принципиально не использовать никакие формы replace().
Эту функцию надо воссоздать самому.
1
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
26.11.2021, 21:31
Лучший ответ Сообщение было отмечено oxy2388 как решение

Решение

Придумал вариант, но он бракованный оказался ... удалил пока

Добавлено через 3 часа 55 минут
Вариант с substring()
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
const autoReplace = (str, sub, repl) => {
    let i = 0, temp; // infinite loop protection (sub === repl) -> true
    while(~str.indexOf(sub, i)) {
        temp = str.indexOf(sub, i);
        str = str.substring(0, str.indexOf(sub, i)) + repl + str.substring(str.indexOf(sub, i) + sub.length);
        i = temp + repl.length;
    }
    return str;
};
 
console.log( autoReplace('Ехал Грека через реку', 'ре', '(вау)') ); // Ехал Г(вау)ка че(вау)з (вау)ку
console.log( autoReplace('Ехал Грека через реку', 'ре', 'ре') ); // Ехал Грека через реку [i]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2021, 21:31
Помогаю со студенческими работами здесь

Описать метод, который возвращает bool и имеет два целых числа в аргументах
Описать метод, который возвращает bool и имеет два целых числа в аргументах. Если первое число больше второго, то возвращается true, иначе...

Как описать в обработчике onkeypres проверку на правильность ввода даты
Мну интересует как описать в обработчике onkeypres проверку на правильность ввода даты и запретить ввод всего остального?формат даты...

Void в аргументах функции
Здравствуйте. В книге Праты Язык программирования C, функция представляется таким образом: int main(void) И говориться, что void...

Ошибка в аргументах функции
Мне нужно сделать 2 функции поиска индексов максимального и минимального элементов но почему то при вызове функции выдает ошибку ' cannot...

Добавление элемента в динамический массив - как описать проверку необходимости расширения массива
Уважаемые форумчане. помогите не могу реализовать добавление элемента в дин.массив. - не могу описать проверку необходимости расширения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru