从数组的javascript数组中获取未定义
这与我的前一个问题有关,但它略有不同,是一个全新的问题。。。我有一个数组,经过一些漂亮的PHP之后,它看起来像这样:从数组的javascript数组中获取未定义,javascript,arrays,json,Javascript,Arrays,Json,这与我的前一个问题有关,但它略有不同,是一个全新的问题。。。我有一个数组,经过一些漂亮的PHP之后,它看起来像这样: var series = { "001":{ "game":"Portal 2", "name":"Portal 2" }, "002":{ "game":"Minecraft", "name":"241" }, "003":{ "game":"Minecraf
var series = {
"001":{
"game":"Portal 2",
"name":"Portal 2"
},
"002":{
"game":"Minecraft",
"name":"241"
},
"003":{
"game":"Minecraft",
"name":"HackMine"
},
"004":{
"game":"Mass Effect 3",
"name":"Mass Effect 3"
},
"005":{
"game":"League of Legends",
"name":"League of Legends"
},
"006":{
"game":"Half Life 2",
"name":"The Hidden: Source"
},
"007":{
"game":"Skyrim",
"name":"Modded Skyrim"
}
}
这个位子很好。。。现在我的问题是,当调用这个函数时,它总是给出game
和name
值undefined
function seriesIdOnBlur()
{
var id = parseInt(document.getElementById("series_id").value);
if (series[id] == null)
{
var message = "The Series ID you input was invalid";
}
else
{
var seriesId = series[id];
var game = seriesId['game'];
var name = seriesId['name'];
var message = "You've inputted the id for the game: " + game + " for the series: " + name;
}
document.getElementById("series_id_check").innerHTML = message;
}
你正在用那些领先的
0
s:系列['001']
与系列['1']
不同。切断parseInt
调用(强制用户键入'001'),删除前导0:
var series = {
"1":{
"game":"Portal 2",
"name":"Portal 2"
},
...
"7":{
"game":"Skyrim",
"name":"Modded Skyrim"
}
}
或者使用数组:
var series = [
{
"game":"Portal 2",
"name":"Portal 2"
},
...
{
"game":"Skyrim",
"name":"Modded Skyrim"
}
]
这:
是一个对象文字,因此您有对象的对象,而不是您所说的数组的数组
要使代码正常工作,您需要对象数组:
series = [
{
"game":"Portal 2",
"name":"Portal 2"
},
{
"game":"Minecraft",
"name":"241"
} ... ];
这些不是数组。这是一个对象。请注意数组是基于0的,因此如果切换到数组示例,您的第一个元素将位于索引0而不是“001”。如果您希望它位于索引1,您可以指定您的索引并创建所谓的“稀疏”数组:
series[1]={“game”:“Portal”、“name”:“Portal”}
quick plunker用于不带parseInt
的变体:我有意使用00,因为最终我将拥有10个以上的系列,我希望数据库看起来整洁,我不希望超过999,所以零也没问题。。。所以你说删除parseIntPlunker真的很有用,但是,在plunker上它可以工作,而在网站上它不知道?网站是upload.red-jax.com谢谢我发现了我的问题这个解决方案确实有效,它是我得到PHP的地方,我用引号将它括起来。。。所以这与这个错误无关,是我在发邮件到So时清理的。。。谢谢:对象的对象很好,我以为它们是数组
series = [
{
"game":"Portal 2",
"name":"Portal 2"
},
{
"game":"Minecraft",
"name":"241"
} ... ];