Size: a a a

JS Liberty [ОЫ]

2020 June 22

B

Bunk Bunkovich 🐈 in JS Liberty [ОЫ]
На самом деле правильно советуют, ибо опыт показывает, что дальше ситуация будет развиваться так:
1) ты находишь пример скрипта
2) ты не понимаешь, как его запустить. Тема в форуме: "Как запустить скрипт?"
3) Тебе советуют поднять Apache и, например, PHP. Тема в форуме "как установить и настроить PHP?"
4) Тебе рассказывают, как поднять Apache и PHP. Ты поднимаешь, но скрипт не работает. Тема в форуме: "Почему не запускается скрипт?"
5) В форуме выясняют, что у тебя 1) не настроен виртуальный хост на апаче, 2) не стоит MySQL. Тема в форуме: "Как настроить MySQL?"
6) Ты по советам форумчан поднимаешь MySQL, создаёшь нужную базу данных, скрипт работает, но выглядит не так, как тебе хочется. Тема в форуме: "Как поменять дизайн скрипта?"
......
N) Скрипт работает, имеет нужный дизайн и функциональность, стоит на платном хостинге в интернете, интегрирован с твоим сайтом, у тебя уже двое детей, профессия PHP-программиста, диплом Oracle DBA и неотвязная мысль в мозгу "Нах.. мне всё это надо было?"
источник

p

persona x grata in JS Liberty [ОЫ]
Как правильно сделать эту функцию?

Задание: создайте функцию censor, которая возвращает другую функцию принимающую два параметра строки, когда подается две строки, то функция сохраняет их в объект как пару ключ-значение. Если подается одна строка, то функция возвращает это предложение, в котором некоторые слова это ключи из объекта, их надо заменить на values.

function censor () {
 let cache = {};
 return function (str1, str2) {
   if (str1 && str2) { // если подается две строки, то кэшируем их
     cache[str1] = str2; // кэш
   }
   if (str1 && !str2) { // если подается 1 строка
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(value);
       str1 = str1.replace(reg, key);
     }
     return str1;
   }    
   return cache;
 }    
}

const changeScene = censor();

// два раза подаются две строки, которые кэшируем

changeScene('dogs', 'cats');
changeScene('quick', 'slow');

//третий раз подается 1 строка-предложение, в котором надо заменить dogs на cats, quick на slow

console.log(changeScene('The quick, brown fox jumps over the lazy dogs.')); // should log: 'The slow, brown fox jumps over the lazy cats.'
источник

S

Syntax Highlight Bot in JS Liberty [ОЫ]
persona x grata
Как правильно сделать эту функцию?

Задание: создайте функцию censor, которая возвращает другую функцию принимающую два параметра строки, когда подается две строки, то функция сохраняет их в объект как пару ключ-значение. Если подается одна строка, то функция возвращает это предложение, в котором некоторые слова это ключи из объекта, их надо заменить на values.

function censor () {
 let cache = {};
 return function (str1, str2) {
   if (str1 && str2) { // если подается две строки, то кэшируем их
     cache[str1] = str2; // кэш
   }
   if (str1 && !str2) { // если подается 1 строка
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(value);
       str1 = str1.replace(reg, key);
     }
     return str1;
   }    
   return cache;
 }    
}

const changeScene = censor();

// два раза подаются две строки, которые кэшируем

changeScene('dogs', 'cats');
changeScene('quick', 'slow');

//третий раз подается 1 строка-предложение, в котором надо заменить dogs на cats, quick на slow

console.log(changeScene('The quick, brown fox jumps over the lazy dogs.')); // should log: 'The slow, brown fox jumps over the lazy cats.'
источник

T

Th0r in JS Liberty [ОЫ]
persona x grata
Как правильно сделать эту функцию?

Задание: создайте функцию censor, которая возвращает другую функцию принимающую два параметра строки, когда подается две строки, то функция сохраняет их в объект как пару ключ-значение. Если подается одна строка, то функция возвращает это предложение, в котором некоторые слова это ключи из объекта, их надо заменить на values.

function censor () {
 let cache = {};
 return function (str1, str2) {
   if (str1 && str2) { // если подается две строки, то кэшируем их
     cache[str1] = str2; // кэш
   }
   if (str1 && !str2) { // если подается 1 строка
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(value);
       str1 = str1.replace(reg, key);
     }
     return str1;
   }    
   return cache;
 }    
}

const changeScene = censor();

// два раза подаются две строки, которые кэшируем

changeScene('dogs', 'cats');
changeScene('quick', 'slow');

//третий раз подается 1 строка-предложение, в котором надо заменить dogs на cats, quick на slow

console.log(changeScene('The quick, brown fox jumps over the lazy dogs.')); // should log: 'The slow, brown fox jumps over the lazy cats.'
а чо твой код не работает?
источник

p

persona x grata in JS Liberty [ОЫ]
Th0r
а чо твой код не работает?
неа, что-то регулярка не срабатывает, в консоль выводит предложение без изменений

https://codepen.io/css-middle-programist/pen/QWyvwMv
источник

p

persona x grata in JS Liberty [ОЫ]
Th0r
а чо твой код не работает?
посмотри пожалуйста. час писал код, не врубаюсь)
источник

T

Th0r in JS Liberty [ОЫ]
persona x grata
посмотри пожалуйста. час писал код, не врубаюсь)
так тебе наоборот надо менять key на value
источник

p

persona x grata in JS Liberty [ОЫ]
Th0r
так тебе наоборот надо менять key на value
точняк)) получил в консоль ожидаемый результат, но теперь какие-то тесты не проходит
источник

p

persona x grata in JS Liberty [ОЫ]
источник

T

Th0r in JS Liberty [ОЫ]
persona x grata
написано же, что функция сохранения не должна ничего возвращать
источник

L

Lupusregina[beta] in JS Liberty [ОЫ]
persona x grata
Как правильно сделать эту функцию?

Задание: создайте функцию censor, которая возвращает другую функцию принимающую два параметра строки, когда подается две строки, то функция сохраняет их в объект как пару ключ-значение. Если подается одна строка, то функция возвращает это предложение, в котором некоторые слова это ключи из объекта, их надо заменить на values.

function censor () {
 let cache = {};
 return function (str1, str2) {
   if (str1 && str2) { // если подается две строки, то кэшируем их
     cache[str1] = str2; // кэш
   }
   if (str1 && !str2) { // если подается 1 строка
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(value);
       str1 = str1.replace(reg, key);
     }
     return str1;
   }    
   return cache;
 }    
}

const changeScene = censor();

// два раза подаются две строки, которые кэшируем

changeScene('dogs', 'cats');
changeScene('quick', 'slow');

//третий раз подается 1 строка-предложение, в котором надо заменить dogs на cats, quick на slow

console.log(changeScene('The quick, brown fox jumps over the lazy dogs.')); // should log: 'The slow, brown fox jumps over the lazy cats.'
const censor = (a = []) => 
 (s1, s2) =>
   s2 ? a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)), s1)
источник

S

Syntax Highlight Bot in JS Liberty [ОЫ]
Lupusregina[beta]
const censor = (a = []) => 
 (s1, s2) =>
   s2 ? a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)), s1)
источник

p

persona x grata in JS Liberty [ОЫ]
Th0r
написано же, что функция сохранения не должна ничего возвращать
точно, спс. пора отдохнуть)

function censor() {
 let cache = {};
 return function (str1, str2) {
   if (str1 && typeof str2 === 'string') {
     cache[str1] = str2;
   } else {
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(key);
       str1 = str1.replace(reg, value);
     }
     return str1;
   }
 };
}
источник

S

Syntax Highlight Bot in JS Liberty [ОЫ]
persona x grata
точно, спс. пора отдохнуть)

function censor() {
 let cache = {};
 return function (str1, str2) {
   if (str1 && typeof str2 === 'string') {
     cache[str1] = str2;
   } else {
     for (let [key, value] of Object.entries(cache)) {
       const reg = new RegExp(key);
       str1 = str1.replace(reg, value);
     }
     return str1;
   }
 };
}
источник

T

Th0r in JS Liberty [ОЫ]
replaceAll может тесты не пройти
источник

p

persona x grata in JS Liberty [ОЫ]
Lupusregina[beta]
const censor = (a = []) => 
 (s1, s2) =>
   s2 ? a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)), s1)
источник

p

persona x grata in JS Liberty [ОЫ]
не катает)
источник

p

persona x grata in JS Liberty [ОЫ]
Lupusregina[beta]
const censor = (a = []) => 
 (s1, s2) =>
   s2 ? a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)), s1)
источник

L

Lupusregina[beta] in JS Liberty [ОЫ]
persona x grata
censor = (a = [], f) => 
 f = (s1, s2, s3 = s1) =>
   s2 ? void a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)),
       s1 === s3 ? s1 : f(s1, s2))
источник

S

Syntax Highlight Bot in JS Liberty [ОЫ]
Lupusregina[beta]
censor = (a = [], f) => 
 f = (s1, s2, s3 = s1) =>
   s2 ? void a.push([s1, s2]) :
     (a.map(([k, v]) => s1 = s1.replace(k, v)),
       s1 === s3 ? s1 : f(s1, s2))
источник