不能推入数组对象

can't push to array Objects

本文关键字:对象 数组 不能      更新时间:2023-09-26

我有数组对象的问题。我有变量"设置"。如果我写:

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]-未定义。我错了吗?

Data I received and console.log(Data);获取字符串数据

补充道:

console.log(tempSettings) in variant hardcoded does:

[对象{Id = 1,名称="Test1"},对象{Id = 2, name = " Test2 "})

和console.log(settings)中的接收变量:[]。

但是在控制台点击后我看到:

[0]对象{id ="3",名称="Test3"},[1]对象{id ="4",name = " Test4 "}。

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]);
});