Проблема с функцией поиска нужного типа в массиве объектов
Я новичок в 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