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);
});
结果如下:
但是当我尝试执行此操作console.log(item.name);
时,我只是 undefined
。
谁能看到我做错了什么?
答案 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
代码)