Проблема с функцией поиска нужного типа в массиве объектов

Я новичок в js. Мне нужно получить значение true/false в массиве объектов по определенному условию. Ниже моя попытка. Вопрос, почему console.log(rightType(2)) выводит false. Возможно проблема в том что я не до конца разобрался с методом reduce

const data = [{
    id: 1,
    type: 1,
  },
  {
    id: 2,
    type: 2,
  },
  {
    id: 3,
    type: 2,
  },

]

const rightType = (value) => data.reduce(
  (acc, {
    id,
    type
  }) => id === value && type === 2,
  false,
)

console.log(rightType(1)) //false 
console.log(rightType(2)) //false ????
console.log(rightType(3)) //true


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

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

Вопрос, почему console.log(rightType(2)) выводит false

Потому что колбек функция в reduce всегда возвращает false...

Возможно проблема в том что я не до конца разобрался с методом reduce

Думаю что именно в этом проблема. Поскольку это метод ту не совсем уместен. Тут более подойдет метод some(). https://doka.guide/js/array-some/

const data = [{
    id: 1,
    type: 1,
  },
  {
    id: 2,
    type: 2,
  },
  {
    id: 3,
    type: 2,
  },

]

const rightType = value => data.some(({id, type}) => id === value && type === 2)

console.log(rightType(1)) //false 
console.log(rightType(2)) //true
console.log(rightType(3)) //true

→ Ссылка