我有数组对象的问题。 我有变量"设置"。 如果我写:
var settings=[];
var tempSettings=[{
id:1,
name:"Test1"
},
{
id:2,
name:"Test2"
}
];
settings=tempSettings;
console.log(settings[0]);
好吧 - 所有的工作。设置[0] - 没问题;
但如果我从文件中收到数据并执行:
jQuery.getJSON("myurl", function(data) {
console.log(data);
var zones=data.split("~");
jQuery.each(zones, function(key, value) {
var set = value.split(",");
var tset={
id:set[0],
name:set[1]
};
settings.push(tset);
});
});
console.log(settings[0]);
这不起作用设置[0] - 未定义。 我的错误是什么?
我收到的数据和console.log(数据);给我字符串数据。
加了:
变体hardcodded中的console.log(tempSettings)确实:
[Object {Id = 1,name =" Test1"},Object {Id = 2,name =" Test2"}]
收到的变量中的和console.log(设置)确实: []。
但在点击控制台后我看到:
[0]对象{id =" 3",name =" Test3"},[1]对象{id =" 4",name =& #34; TEST4"}。
答案 0 :(得分:1)
getJSON
是异步的。您需要在回调函数中包含console.log
:
jQuery.getJSON("myurl", function(data) {
console.log(data);
var zones=data.split("~");
jQuery.each(zones, function(key, value) {
var set = value.split(",");
var tset = {
id:set[0],
name:set[1]
};
settings.push(tset);
});
console.log(settings[0]);
});