javascript получение undefined после поиска объекта в массиве - PullRequest
0 голосов
/ 19 июня 2020

Я не понимаю, что делаю не так. У меня простой код:

console.log(req.params.id); 
let tour = tournaments.find((item) => {return item.id === req.params.id});
console.log(tournaments);
console.log(tour);
console.log(req.params.id); 

Где tournaments - массив объектов. Вот мой результат:

1592563085412
[
  Tournament {
    id: 1592563085412,
    discipline: 'chess',
    type: 'Bracket Tournament',
    description: 'des 1',
    date: '2020-06-19 12:38:05'
  }
]
undefined
1592563085412

Почему я получаю undefined после console.log(tour); Что мне следует изменить? Я ожидал получить объект, где id = 1592563085412

Спасибо и С уважением!

1 Ответ

1 голос
/ 19 июня 2020

Убедитесь, что item.id и req.params.id относятся к одному типу. Для этого вы можете добавить журнал:

console.log(typeof item.id)
console.log(typeof req.params.id)

Если они не одного типа, используйте == или лучше конвертируйте оба в один и тот же тип. Например, parseInt(req.params.id, 10). Я ожидаю, что виновником будет req.params.id, поскольку параметры запроса сериализованы в строку.

См. Это сообщение: Какой оператор равенства (== vs ===) следует использовать в JavaScript сравнениях?

Оператор строгого равенства (===) ведет себя идентично оператору абстрактного равенства (==), за исключением того, что преобразование типов не выполняется, и типы должны быть одинаковыми, чтобы считаться равными .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...