Как полностью перебрать массив объектов?

Почему метод find возвращает только первый объект с массива?

Как правильно сделать чтобы проверяло целый массив на это условие?

Сейчас работает только первый логин и пароль, а когда вводишь второй - срабатывает второе условие, хотя должно сработать первое, потому что все верно.

const storedData = [
    {
        email: "[email protected]",
        pw : 'qqq'     
    },

    {
        email : "[email protected]",
        pw : "www"
    }
];

document.querySelector('#submit').addEventListener('click', e => {
    e.preventDefault();
    storedData.find(data => {
        console.log(data);
        if (data.email === document.querySelector('#login').value && data.pw === document.querySelector('#pw').value) {
            console.log("ok");
        }else {
            console.log("inccorect login or pw");
        }
        return true;
    });
});
 <form action="">
        login <input type="text" id="login">
        password <input type="password" id="pw">
        <input type="submit" value="Submit" id="submit">
      </form>    


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

Автор решения: fortavey

Метод find возвращает первый элемент который удовлетворяет условию

→ Ссылка
Автор решения: Grundy

Метод find останавливается, в случае, если результатом выполнения callback функции является true.

Так как у тебя всегда возвращается true - то поиск заканчивается сразу.

→ Ссылка
Автор решения: vsemozhebuty

Вы используете метод find() не по назначению: он возвращает первый подходящий элемент (то есть элемент, для которого функция-параметр возвращает truthy значение) и дальше ничего не перебирает.

Если вам не нужно возвращаемое значение, а нужно просто перебрать весь массив с какими-то действиями, используйте forEach() или цикл for-of.

Или же, если при помощи find() нужно проверить, подходят ли данные хоть для одного элемента массива, возвращайте true только в случае совпадения и проверяйте возвращённое find() значение.

const storedData = [
    {
        email: "[email protected]",
        pw : 'qqq'     
    },

    {
        email : "[email protected]",
        pw : "www"
    }
];

document.querySelector('#submit').addEventListener('click', e => {
    e.preventDefault();
    const found = storedData.find(data => {
        console.log(data);
        return data.email === document.querySelector('#login').value &&
               data.pw === document.querySelector('#pw').value;
    });
    
    if (found) console.log("ok");
    else console.log("inccorect login or pw");
});

Можно ещё использовать метод some().

→ Ссылка