Member 13823482 Ответов: 2

Я не могу выполнить приведенный ниже код, так как он не возвращает вывод при вводе данных.


var pokemongo=
{
  "pokemon": [{
    "id": 1,
    "num": "001",
    "name": "Bulbasaur",
    "img": "http://www.serebii.net/pokemongo/pokemon/001.png",
    "type": [
      "Grass",
      "Poison"
    ],
    "height": "0.71 m",
    "weight": "6.9 kg",
    "candy": "Bulbasaur Candy",
    "candy_count": 25,
    "egg": "2 km",
    "spawn_chance": 0.69,
    "avg_spawns": 69,
    "spawn_time": "20:00",
    "multipliers": [1.58],
    "weaknesses": [
      "Fire",
      "Ice",
      "Flying",
      "Psychic"
      ]
			  }]

	

};

var pokeinfo=function(name)
{
	var isfound=false;

	for(x in pokemongo){
		
		if(pokemongo[x]['name']==name){
			isfound=true;
			break;
		}
		else{
			isfound=false;
		}
	}// end of for in loop

if(isfound==true){
	
	alert(pokemongo.pokemon[x])
}
else{
	alert(" info not available ")
}

}


var name=prompt('Enter the name of pokemon')
pokeinfo(name)


Что я уже пробовал:

<pre>var pokemongo=
{
  "pokemon": [{
    "id": 1,
    "num": "001",
    "name": "Bulbasaur",
    "img": "http://www.serebii.net/pokemongo/pokemon/001.png",
    "type": [
      "Grass",
      "Poison"
    ],
    "height": "0.71 m",
    "weight": "6.9 kg",
    "candy": "Bulbasaur Candy",
    "candy_count": 25,
    "egg": "2 km",
    "spawn_chance": 0.69,
    "avg_spawns": 69,
    "spawn_time": "20:00",
    "multipliers": [1.58],
    "weaknesses": [
      "Fire",
      "Ice",
      "Flying",
      "Psychic"
      ]
			  }]

	

};

var pokeinfo=function(name)
{
	var isfound=false;

	for(x in pokemongo){
		
		if(pokemongo[x]['name']==name){
			isfound=true;
			break;
		}
		else{
			isfound=false;
		}
	}// end of for in loop

if(isfound==true){
	
	alert(pokemongo.pokemon[x])
}
else{
	alert(" info not available ")
}

}


var name=prompt('Enter the name of pokemon')
pokeinfo(name)

2 Ответов

Рейтинг:
0

Patrice T

x не является индексом в pokemongo
Попробуй:

var pokeinfo=function(name)
{
	var isfound=false;

	for(x in pokemongo){
		
		if(x['name']==name){
			isfound=true;
			break;
		}
		else{
			isfound=false;
		}
	}// end of for in loop

Ваш код ведет себя не так, как вы ожидаете, и вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что вы должны делать, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.
Отладчик - Википедия, свободная энциклопедия[^]
Отладка JavaScript[^]
Хром Инструменты Разработчика  |  Сеть  |  Разработчики Google[^]
Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
0

Bryian Tan

Основываясь на объекте JSON, код необходимо обновить, чтобы использовать несколько итераций для получения желаемого результата с помощью JavaScript. Также. есть недостатки в коде, например, x недоступен/не находится в области действия после цикла.

Вот вам пример

CP_find pokemon - JSFiddle[^]