Работа с объектом и массивом. Ошибка в коде

Условие задачи: Мне нужно было сравнить ключи в объекте(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 будет ожидаемо объектом и условие будет выполняться корректно

→ Ссылка