有没有办法说类似
User.friends[id=1].posts=data
在 Javascript 中,User.friends 是 Friend 项目的集合,其中一个属性是“id”?
我正在迭代一个集合 User.friends,它是一个 Friend 对象的集合,具有 3 个属性(id、posts 和 likes)。内部迭代器实例变量friend似乎是按值传递而不是按引用传递;那么,如何在迭代器中优雅地设置父对象的属性呢?
async.each(User.friends, function(friend, cb) {
var url="https://graph.facebook.com/"+friend.id.id+"/?fields=posts&since="+ moment(postFromDate).format('YYYY-MM-DD') + '&access_token=' + User.accessToken;
request.get({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
//I WANT TO SET THE ACTUAL User.friend[i].posts value,
//but I do not know how to get the value of 'i'?
friend.posts=body.data; //this just sets local friend var
cb(null);
} else {
console.log(error);
throw error;
}
}); //...request.get
}, function(error, result) {
callback();
}); //...async_each
对不起,如果这是一个愚蠢的问题。任何帮助都非常感谢。我试过了:
_.findWhere(User.friends,{id: friend.id}).posts=body.data;
但这似乎不起作用(我认为它只是设置了一个本地值)。