JS Нахождение одинаковых пар ключ-значение в массиве?

Подскажите, пожалуйста, как эффективнее всего находить элементы массива с одинаковыми значениями ключей? Приведу простой пример.

let book = [{
    id: 1,
    urlAddress: 'Monday-starts-on-Saturday',
    bookName: "Понедельник начинается в субботу",
    seriesNumber: 1,
  },
  {
    id: 2,
    urlAddress: "Harry-Potter-and-the-Order-of-the-Phoenix",
    bookName: "Гарри Поттер и Орден Феникса",
    seriesNumber: 2,
  },
  {
    id: 44,
    urlAddress: "The-Tale-of-the-Three-Pigs",
    bookName: "Сказание о трех свинах",
    seriesNumber: 5,
  },
  {
    id: 6,
    urlAddress: "Harry-Potter-and-the-Philosopher's-Stone",
    bookName: "Гарри Поттер и философский камень",
    seriesNumber: 2,
  },
];

let list = document.getElementById("myList");
<ul id="myList">
</ul>

Как найти все книги со значением seriesNumber: 2 и записать значения их имен в ul ? Что б было

<ul id="myList"><li>Гарри Поттер и Орден Феникса</li><li>Гарри Поттер и Орден Феникса</li></ul>

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

Автор решения: Dmitry Krasnov

Чтобы извлечь необходимые объекты можно воспользоваться либо for() как писали раньше, либо reduce()

Вот пример с использованием reduce()

    function reducer(acc, value) {
        if (value.seriesNumber === 2) {
        acc.push(value);
      }
        return acc;
    }
    
    const filterBooks = book.reduce(reducer, []);

В html элемент можно позже положить с помощью el.innerHTML

→ Ссылка
Автор решения: Михаил Камахин

Не знаю что эффективнее, но вот просто рабочий код:

const books = [{
    id: 1,
    urlAddress: 'Monday-starts-on-Saturday',
    bookName: "Понедельник начинается в субботу",
    seriesNumber: 1,
  },
  {
    id: 2,
    urlAddress: "Harry-Potter-and-the-Order-of-the-Phoenix",
    bookName: "Гарри Поттер и Орден Феникса",
    seriesNumber: 2,
  },
  {
    id: 44,
    urlAddress: "The-Tale-of-the-Three-Pigs",
    bookName: "Сказание о трех свинах",
    seriesNumber: 5,
  },
  {
    id: 6,
    urlAddress: "Harry-Potter-and-the-Philosopher's-Stone",
    bookName: "Гарри Поттер и философский камень",
    seriesNumber: 2,
  },
];

const filteredBooks = books.slice().filter(item => item.seriesNumber === 2);

const ul = document.querySelector('#ul');

filteredBooks.forEach(item => {
  const li = document.createElement('li');
  li.innerHTML = item.bookName;
  ul.append(li);
});
<ul id="ul">
</ul>

→ Ссылка