json.stringify(obj)错误obj未定义

时间:2018-06-22 01:47:19

标签: javascript

我正在尝试访问对象的元素,但是每当执行该代码时,都会引发undefined错误。

var pokeShow= function(pokaName,datapp) {
         for(var i=0;i<datapp.pokemon.length;i++) {
         if(datapp.pokemon[i].name==pokaName){
          var dispo=datapp.stringify(pokemon[i])   // this line is showing error that pokemon is not defined 
          alert(dispo)
         }

        else
          alert("wrong input")
    }

json文件(它的一个块):-

var pokeData = {
  "pokemon": [{
    "id": 1,
    "num": "001",
    "name": "Bulbasaur",
    "img": "http://www.serebii.net/pokemongo/pokemon/001.png",
    "type": [
      "Grass",
      "Poison" ... 

口袋妖怪似乎已在对象中明确定义,为什么会引发此错误?

2 个答案:

答案 0 :(得分:1)

似乎您正在尝试获取尚未定义为对象本身的对象的一部分。

datapp.pokemon[i].name==pokaName
pokemon[i]

尝试更换

var dispo=datapp.stringify(pokemon[i])

var dispo=datapp.stringify(datapp.pokemon[i])

我也不完全确定,但我认为您是要放置 JSON.stringify而不是datapp.stringify

答案 1 :(得分:0)

for(var i=0;i<datapp.pokemon.length;i++) {
  if(datapp.pokemon[i].name==pokaName){
    var dispo=datapp.stringify(pokemon[i]) 
      alert(dispo)
  }
}

pokemondatapp一部分的数组,在比较if(datapp.pokemon[i].name==pokaName)时,您做的很正确。问题是当您stringify时,您不是在指datapp.pokemon[i],因此未定义。相反,您可以将其更改为以下

    var dispo=JSON.stringify(datapp.pokemon[i])