Задать вопрос
@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 Простой Комментировать
Решение пользователя Антон Швец К ответам на вопрос (2)
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)
Ответ написан
Комментировать