0

$.each ループから要素を配列に更新したいのですが、配列に正しく読み込まれません。すべてのユーザーを 1 つの要素に入れ、すべての日付を 1 つの要素に入れます。コードは次のとおりです。

    var array = [{
      user: "",
      user_id: "",
      date: "",
      profile_img: "",
      text: "",
      contentString: "",
      url: "",
      location: ""
    }];
    $.getJSON("http://search.twitter.com/search.json?q=%23euronews&rpp=5&include_entities=true&result_type=mixed&callback=?",

    function (data) {
      $.each(data.results, function (i, item) {
        var user = item.from_user;
        var user_id = item.from_user_id;
        var date = item.created_at;
        var profile_img = item.profile_image_url;
        var text = item.text;
        var contentString = text;
        var url = (item.entities.urls.length > 0 ? item.entities.urls[0].url : '');
       console.log(i);
       array.user=user;
       array.user_id=user_id;
       array.date=date;
       array.profile_img=profile_img;
       array.text=text;
       array.contentString=contentString;
       array.url=url;

      });
      console.log(array);
       });

これを修正するにはどうすればよいですか?

4

2 に答える 2

0

for ... inそのループに更新コードを入れないでください。「i」値が関数に渡されます。forループは必要ありません。

array[i]したがって、割り当ての周りのループを取り除くだけです。

また、割り当てが間違っています。

 array[i].user = user;
 array[i].user_id = user_id;

于 2012-08-17T14:00:49.840 に答える
0

にユーザーを追加したいようですarray.push()配列に既に存在するすべてのオブジェクトのプロパティを上書きする代わりに、メソッドとオブジェクト リテラルを使用します。

$.each(data.results, function (i, item) {
    array.push( {
        user: item.from_user,
        user_id: item.from_user_id,
        date: item.created_at,
        profile_img: item.profile_image_url,
        text: item.text,
        contentString: text,
        url: item.entities.urls.length > 0 ? item.entities.urls[0].url : ''
    } );
});
console.log(array);

既存のアイテムを上書きしてすでに配列を更新するには、使用したい場合があります

   array[i] = {…};
于 2012-08-17T14:34:15.530 に答える