哎呀,看来我不知道自己在做什么。
我以为我正在制作一个对象数组:
$.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);
我只是得到未定义
。
有人能看出我做错了什么吗?
最佳答案
您正在将包含单个项目的数组推送到 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
代码)
关于javascript - 为什么我无法获取JS对象值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26463297/