Size: a a a

JavaScript Noobs — сообщество новичков

2021 May 22

В

Владимир in JavaScript Noobs — сообщество новичков
Я почти сделал на jquery
источник

v

va1 in JavaScript Noobs — сообщество новичков
.some(value => element.dataset.id.includes(value));
возможно так тогда лучше будет проверка, в первом варианте наличие дата аттрибута проверяется
источник

v

va1 in JavaScript Noobs — сообщество новичков
а джимкери ок
источник

Рк

Рот казино in JavaScript Noobs — сообщество новичков
Какой самый нормальный курс по vue ,с точки зрения практических заданий?
источник

Рк

Рот казино in JavaScript Noobs — сообщество новичков
А то я все что находил слишком какие то простые были
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
криптономикон
источник

VC

Valera CSS_Junior in JavaScript Noobs — сообщество новичков
не подскажете в какую сторону мыслить в такой задаче?  в функцию поступает аргумент (любое число бонусов), а мне нужно сделать чтобы она грамотный русский текст сформировала в зависимости от числа бонусов
const bonusesCountExamples = [1, 2, 100, 4, 5, 10, 11];
bonusesCountExamples.forEach(prepareBonusText);

function prepareBonusText(bonusCount) {
 /*
  * если 2 то "бонуса"
  * если 10 то "бонусов"
  * если 1 то "бонус"
  * ... и так далее
  * */
}
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
function prepareBonusText(bonusCount) {
 return bonusCount + ' бонус' + (bonusCount>1?bonusCount>4?'ов':'а':'')
}
источник

VC

Valera CSS_Junior in JavaScript Noobs — сообщество новичков
ммм... красивое решение, но есть косячок. например "21 бонусов"
источник

КК

Ксяу Ка in JavaScript Noobs — сообщество новичков
function prepareBonusText(bonusCount) {
 let text = 'бонус';
 if (bonusCount === 1) return
${bonusCount} ${text};
 if (bonusCount < 20) {
   text += !bonusCount || bonusCount > 4 ? 'ов' : 'а';
 } else {
   const rest = bonusCount % 10;
   if (rest === 1) return bonusCount + text;
   text += !rest || rest > 4 ? 'ов' : 'а';
 }
 return
${bonusCount} ${text};
}
источник

КК

Ксяу Ка in JavaScript Noobs — сообщество новичков
и еще, в forEach смысла в return нет, если только вы не хотите прервать текущую итерацию и перейти на следующий элемент.
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
я даже хз
function prepareBonusText(bonusCount, x=bonusCount%10) {
 return bonusCount + ' бонус' + (x>1||bonusCount<20?x>4||bonusCount<20?'ов':'а':'')
}


будут ли ошибки
источник

КК

Ксяу Ка in JavaScript Noobs — сообщество новичков
будут, вторым аргументом залетит индекс, это же не просто функция, а обработчик
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
хммм еще бы проверучку замутить :D
источник

VC

Valera CSS_Junior in JavaScript Noobs — сообщество новичков
мне подсказали одну либу. я оттуда выдрал вариант решения. может кому пригодится
function prepareBonusText(bonusCount) {
 const forms = ['бонус', 'бонуса', 'бонусов'];
 const hundredRemainder = bonusCount % 100;
 const tenRemainder = hundredRemainder % 10;

 if (hundredRemainder > 10 && hundredRemainder < 20) {
   return forms[2];
 }

 if (tenRemainder > 1 && tenRemainder < 5) {
   return forms[1];
 }

 if (tenRemainder === 1) {
   return forms[0];
 }

 return forms[2];
}
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
чистенько получилось
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
ты в три чата задал вопрос, понимаю
источник

КК

Ксяу Ка in JavaScript Noobs — сообщество новичков
function prepareBonusText(bonusCount) {
 const prepare = (n, text = 'бонус') =>
${bonusCount} ${n === 1 ? text : text += !n || n > 4 ? 'ов' : 'а'};
 return prepare(bonusCount < 20 ? bonusCount : bonusCount % 10);
}
источник

j

jabascripter in JavaScript Noobs — сообщество новичков
крошка ты меня волнуешь
источник