В вашем объекте JSON объект next_evolution является массивом объектов, и он не заполняется всегда.
Вы работали непосредственно с полем next_evolution, рассматривая его как массив строк, следовательно, ваше включение не сработало.
Ниже код утомителен, но дает объяснение вашей неправильной итерации
var infoOfPokemon = function(nameOfPokemon, allPokemon) {
for (index in allPokemon) {
var nextEvolutionObject=allPokemon[index].next_evolution;
if (nextEvolutionObject){
for(evolutionIndex in nextEvolutionObject){
if(nextEvolutionObject[evolutionIndex].name===nameOfPokemon){
console.log("Pokemon found :"+nameOfPokemon);
}
}
}
}
}
var nameOfPokemon = prompt('enter the name of Pokemon');
infoOfPokemon(nameOfPokemon, pokemonData.pokemon)