Задать вопрос
@TurnerIT

Верно ли я понял?

Приветствую!
У меня вопрос следующий, есть такой код.
for (let i = 0; i < contacts.length; i++) {
  if (contacts[i].firstName === name) {
      return contacts[i][prop] || "No such contact";
  }

Правильно ли . я понял что логическое или || в этом примере заменяет ветвление else if ?
И выражение можно переписать таким образом
for (let i = 0; i < contacts.length; i++) {
  if (contacts[i].firstName === name) {
      return contacts[i][prop];
  } else if (contacts[i].firstName !== name) {
 return "No such contact";

Просто если так, то где прочесть об таком поведении? Видел как ветвления сокращают до опускания последнего  else, но такого не встречал.
Благодарю за ответы.
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
нет
return contacts[i][prop] || "No such contact"
означает
if (contacts[i][prop]) {
  return contacts[i][prop];
} else {
  return "No such contact";
}

или
return contacts[i][prop]
  ? contacts[i][prop]
  : "No such contact"


Читайте как работает OR, если в выражении первая часть перед || истинна (Truthy) - возвращается она, если ложна (Falsy) - возвращается вторая часть выражения, после ||.

x === (false || x)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
Да, понял верно, но код ниже написал не верный. В коде имеется ввиду вернуть contacts[i][prop] если такое обращение даст положительный результат, или "No such contact" если его не будет.

Прочесть тут Условные операторы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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