0

これが本当にn00bの質問である場合は申し訳ありませんが、私はレールに入ったばかりで、これを理解できません。

現在、サイトから Analytics を使用しています。そして、データをチャートに入れたい。しかし、私がデータを取り戻したとき、私が望むものは整然としていません。現時点で返されるデータは次のとおりです。

{"legend_size":1,"data":{"series":["2013-06-20","2013-06-21","2013-06-22","2013-06-23","2013-06-24","2013-06-25","2013-06-26"],"values":{"undefined":{"2013-06-26":41,"2013-06-24":2,"2013-06-25":55,"2013-06-22":0,"2013-06-23":1,"2013-06-20":0,"2013-06-21":0}}}}

そして、必要なのは ["data"]["values"]["undefined"] ビットを日付順に並べることです。

私はそれが簡単な質問であることを知っています。しかし、私はあちこちを見ましたが、それを理解することはできません。

4

1 に答える 1

0

わかりました、コメントで言ったように、任意の順序があるため、実際にはソートしてオブジェクト化することはできないため、配列を使用する必要があります。

私の解決策は次のとおりです。

    var objectFromAnalytics = {"2013-06-26":41,"2013-06-24":2,"2013-06-25":55,"2013-06-22":0,"2013-06-23":1,"2013-06-20":0,"2013-06-21":0},
        toSort = [], 
        dateParts;
    for (var date in objectFromAnalytics) {
       dateParts = date.split("-");

       toSort.push({ date: new Date(dateParts[0], (dateParts[1] - 1), dateParts[2]), value: objectFromAnalytics[date] });
    }


    var sorted = toSort.sort(function(a,b){
      return a.date < b.date ? -1 : a.date > b.date ? 1 : 0; //you can change this to sort by value if you want
    });

//sorted == [{ date: dateObject, value: value from analytics} , { ... }]

おそらく、これを数行少なくすることで回避できますが、この方法は理解できると思います:)

于 2013-06-27T02:02:21.000 に答える