Работа с объектом и массивом. Ошибка в коде
Условие задачи: Мне нужно было сравнить ключи в объекте(employee) с ключами в массиве(reason). Если условия выполняются то в консоль должно выводиться что я принят, если не выполняются то в консоль должно выводиться что я не принят. Проблема: Не выполняются условия которые указаны в if. Постоянно выводиться последний console.log(Not hired).
const employee = {};
const reason = [
{
age: 25,
education: 'higher',
experience: 1
}
]
Object.defineProperties(employee, {
name: {
value: 'Dmitriy',
writable: false,
configurable: false,
enumerable: false
},
age: {
value: 26,
writable: true,
enumerable: true,
configurable: true
},
education: {
value: 'higher',
writable: true,
enumerable: true,
configurable: true
},
experience: {
value: 6,
writable: true,
enumerable: true,
configurable: true
}
})
function hireNewEmployee (objectEmployee,arrayReason) {
if (objectEmployee['age'] >= arrayReason['age']
&& objectEmployee['education'] === arrayReason['education']
&& objectEmployee['experience'] >= arrayReason['experience']) {
return console.log('You are Hired! Congrats!');
}
return console.log(`Not hired: sorry we cannot hire you. Here is why: ${arrayReason}`);
}
hireNewEmployee(employee,reason);
Ответы (1 шт):
Автор решения: Александр
→ Ссылка
reason - в вашем коде является массивом объектов. Чтобы обратиться к элементу массива, надо использовать индекс элемента. Например, это можно сделать при передаче параметра в функцию:
hireNewEmployee(employee,reason[0])
Тогда ее аргумент arrayReason будет ожидаемо объектом и условие будет выполняться корректно