Obtenir des sorties incohérentes lors d’une itération sur json

set_options_list = function(selctelm, json){ $(selctelm).empty(); for ( key in json.array.F_02_0010){ val = json.array.F_02_0010[key] console.log(key, typeof val, val[0], val[1]); }; } 

Voici mon tableau json:

 json.array = {F_02_0010 : [{0 : "-------"}, {1:"20億円以上"}, {2:"14億円以上20億円未満"}, {3:"7億円以上14億円未満"}, {4:"7000万円以上7億円未満"}, {5:"7000万円未満"}], F_02_0110 : [{0 : "-------"}, {1:"10億円以上"}, {2:"7億円以上10億円未満"}, {3:"4億円以上7億円未満"}, {4:"4000万円以上4億円未満"}, {5:"4000万円未満"}], F_02_0210 :[{0 : "-------"}, {1:"10億円以上"}, {2:"7億円以上10億円未満"}, {3:"4億円以上7億円未満"}, {4:"5000万円以上4億円未満"}, {5:"5000万円未満"}], "default": [{0 : "-------"}] }; 

J’obtiens undefined pour accéder à la clé et à la valeur. Voici le résultat console.log:

 0 object ------- undefined 1 object undefined 20億円以上2 object undefined undefined 3 object undefined undefined 4 object undefined undefined 5 object undefined undefined 

Je ne sais pas pourquoi je suis indéfini ici?

Logique:

json.array.F_02_0010 [0] est {0: “——-“},

json.array.F_02_0010 [1] est {1: “20 円 以上”},

json.array.F_02_0010 [2] est {2: “14 以上 20 円 未 満”},

etc…

Alors:

json.array.F_02_0010 [0] [i] est “——-” si i == 0, non défini sinon

json.array.F_02_0010 [1] [i] est “20 円 以上” si i == 1, non défini sinon

json.array.F_02_0010 [2] [i] est “14 20 円 未” si i == 2, non défini sinon

etc…

vous le voulez probablement de cette façon:

 json.array = {F_02_0010 : ["-------", "20億円以上", "14億円以上20億円未満", "7億円以上14億円未満", "7000万円以上7億円未満", "7000万円未満"], F_02_0110 : ["-------", "10億円以上", "7億円以上10億円未満", "4億円以上7億円未満", "4000万円以上4億円未満", "4000万円未満"], F_02_0210 :["-------", "10億円以上", "7億円以上10億円未満", "4億円以上7億円未満", "5000万円以上4億円未満", "5000万円未満"], "default": ["-------"] }; 

OU de cette façon:

 json.array = {F_02_0010 : {0 : "-------", 1:"20億円以上", 2:"14億円以上20億円未満", 3:"7億円以上14億円未満", 4:"7000万円以上7億円未満", 5:"7000万円未満"}, F_02_0110 : {0 : "-------", 1:"10億円以上", 2:"7億円以上10億円未満", 3:"4億円以上7億円未満", 4:"4000万円以上4億円未満", 5:"4000万円未満"}, F_02_0210 : {0 : "-------", 1:"10億円以上", 2:"7億円以上10億円未満", 3:"4億円以上7億円未満", 4:"5000万円以上4億円未満", 5:"5000万円未満"}, "default": {0 : "-------" } }; 

La propriété F_02_0010 contient un tableau d’objects, qui doivent être itérés à l’aide de la syntaxe traditionnelle. À chaque itération, saisissez l’object, puis parcourez sa clé unique:

 set_options_list = function(selctelm, json){ $(selctelm).empty(); for (var i =0; json.array.F_02_0010.length; i++){ var val = json.array.F_02_0010[i]; for(key in val){ console.log(val[key]); } }; }