1

みたいな言い方ってありますか?

User.friends[id=1].posts=data

Javascript では、User.friends は Friend アイテムのコレクションで、そのプロパティの 1 つは 'id' ですか?

コレクション User.friends を反復処理しています。これは、3 つのプロパティ (id、投稿、いいね) を持つ Friend オブジェクトのコレクションです。内側の反復子インスタンス変数 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;

しかし、これは機能していないようです(ローカル値を設定するだけだと思います)。

4

1 に答える 1

2

filter次の方法を使用できます。

var result = User.friends.filter(function(item) { return item.id === 1; })[0].posts = data;
于 2013-06-22T15:04:22.697 に答える