我有一个对象数组。不知何故,其中一个属性在我的每个循环内都会丢失。我尝试了许多不同类型的循环,但没有任何办法可以解决这个问题。当通过对象数组迭代时,Javascript对象属性'null'
someFunction(someArrayOfObjects) {
console.log(someArrayOfObjects); // logs objects as I expect them to be
$.each(someArrayOfObjects, function(index, someObject) {
console.log(someObject); // one of the properties of someObject is 'null'
});
}
UPDATE:如何数组构造:
// constructor
var people = [];
var Person = function (name, age, photo) {
this.name = name;
this.age = age;
this.photo = null;
};
然后使用AJAX来得到一些JSON,并通过各那些人创建对象
success: function(data) {
people.push(new Person(data['name'], data['age'])
}
然后我迭代并发出另一个AJAX请求来获取他们的每张照片。回调看起来像这样:
function(person, photo) {
person.photo = photo;
});
我是新来的JavaScript和异步编程,所以围绕回调包装我的头脑是艰难的。我想我已经知道了console.log(someArrayOfObjects)
按我的预期工作。我只是无法弄清楚为什么照片属性会在对象单独记录时恢复。 我也尝试在CoffeeScript中重写所有内容,因为语法对我而言稍微简单一些,但不幸的是问题仍然存在。
谢谢。
截图控制台:
你能提供阵列的简单的例子? – user3272018
'var someArrayOfObjects = {name:“joe”,age:“32”,photo:“joe.jpg”}, {name:“alice”,年龄:“5”,照片:“alice.jpg” }, {name:“john”,age:“22”,photo:“john.jpg”} ]'@ user3272018 – lizvdk
给出的代码似乎是正确的。 – vinayakj