Не работает else(((

Есть скрипт, который выборочно выводит свойство объекта через prompt. По задумке, если пользователь ведет другое значение, которого нет в объекте, то должно выводиться сообщение "Введите age или name", но вместо него выходит значение undefined

В каком месте я ошибся?

let border = prompt('Что хотите узнать?' , '');

let user ={
name: 'Domik',
age: 99,	
};

if (border == border){
alert(user[border]);
}

else{
alert('Введите age или name');	
}


Ответы (1 шт):

Автор решения: Сергей Мишин

Ошибка здесь:

if (border == border)

Эта конструкция бессмысленная. Вы проверяете значение переменной с самой собой.


Как вариант: брать имена ключей и проверять наличие имени этого ключа в массиве. Если есть - то выводить значение по ключу, в ином случае - ошибку.

let border = prompt('Что хотите узнать?', '');

let user = {
  name: 'Domik',
  age: 99,
};

let objectPropertyKeys = Object.keys(user);
let alertText = objectPropertyKeys.includes(border) ? user[border] : `Введите одно из значений: ${objectPropertyKeys.join(', ')}`;

alert(alertText);

→ Ссылка