@atsin4469

Что значит присвоить константе value||value?

Задание
Функция должна переставлять каждые два подряд идущих символа. Если число символов нечётное, то последний символ остается на своем месте.

Решение
const encrypt = (str) => {
  let result = '';
  for (let i = 0; i < str.length; i += 2) {
    const nextSymbol = str[i + 1] || '';
    result = `${result}${nextSymbol}${str[i]}`;
  }

  return result;
};


Как работает оператор || в четвертой строке? Не понимаю, что значит присвоить константе value||value
  • Вопрос задан
  • 256 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Здесь хорошо объясняют: ИЛИ «||» находит первое истинное значение

Цепочка value1 || value2 || ... || valueN в JavaScript вернёт первое ненулевое значение (которое приводится к булеву true)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
const nextSymbol = str[i + 1] || '';

Если значение str[i + 1] существует, оно не равно '', потому будет воспринято операцией || как true и вся конструкция сработает как:
const nextSymbol = str[i + 1];

Если значения str[i + 1] не существует (индекс i + 1 выходит за границы строки), операция || воспримет отсутствие значения как false и вся конструкция сработает как:
const nextSymbol = '';

Фактически, это эквивалентно:
const nextSymbol = i + 1 < str.length ? str[i + 1] : '';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы