为什么我不能获得JS对象的值?

时间:2014-10-20 10:18:11

标签: javascript jquery json javascript-objects

Sooo,看起来我不知道自己在做什么。

我以为我正在创建一个对象数组:

$.each(oldList, function( key, item) {
    self.items.push([{
             "name": $(item).data('name') ,
             "id": $(item).data('id') ,
             "lat": $(item).data('lat') ,
             "lng": $(item).data('lng') ,
             "index": key
    }]);
});

然后我这样做:

$.each(self.items, function( key, item) {
  console.log(item);
});

结果如下:

enter image description here

但是当我尝试执行此操作console.log(item.name);时,我只是 undefined

谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:2)

您正在将包含单个项目的数组推送到self.items而不是推送对象。

$.each(oldList, function( key, item) {
    self.items.push({
             "name": $(item).data('name') ,
             "id": $(item).data('id') ,
             "lat": $(item).data('lat') ,
             "lng": $(item).data('lng') ,
             "index": key
    });
});

所以在你的第二个循环item是一个包含一个项目的数组,而不是一个对象,因此item.name未定义,但你可以使用item[0].name来访问该名称(不更改push代码)