Вы не можете использовать , включая функцию , непосредственно для массива, имеющего объекты вместо одного объекта. Это даст ложь как вывод.
Например:
var pets = [{'name':'cat'},{'name':'dog'},{'name':'bat'}];
console.log(pets.includes("cat")) //false
В результате false всегда.
Правильный способ - использовать карту, чтобы получить поле определенного объекта, на котором вы хотите использовать функцию include.
например:
var pets = [{'name':'cat'},{'name':'dog'},{'name':'bat'}];
console.log(pets.map((obj)=> obj.name).includes("cat")); //true
В вашем случае сначала посмотрите, является ли allPokemon [x] .next_evolution неопределенным или нет (т. Е. Ключ next_evolution присутствует или нет)
код становится:
if (allPokemon[x].next_evolution &&
allPokemon[x].next_evolution.(obj)=> obj.name).includes(nameOfPokemon)) { ...