何らかの理由で、私はJavascript配列で必要な結果を得るのに迷っています。ユニークと合計で既存の配列値から新しい配列を作成する
私は、1行に1日と複数のタイムスタンプを含むデータ行を持っています。私がする必要があるのは、そのデータをchart.jsの配列に変換することですが、行を週ごとにマージし、時間を(タイムスタンプから)合計します。以下は、クエリの結果から新しい配列を作成するところですが、必要なときにそれを取得するのに苦労しています。私は(処理付き)配列を作成するのはここ
です:
function chartData(queryrowlist){
var weeks = [];
angular.forEach(queryrowlist, function(value, key)
{
weeks.push(moment(value.date).format('w'),getOnHours(value),getOffHours(value))
});
// create chart array ...
return chart;
}
週間の配列は次のように終わる:週番号、OnHours、OffHours
ある
["23",28800000,3600000,"23",30300000,2700000,"24",35400000,3300000,"24",30000000,3300000]
週番号はラベルとして使用され、時間は角度チャート/ chart.jsのオン/オフデータとして使用されます。問題は、すべての週番号がユニークでなければならず、すべての時間が毎週集計されていることです。
だから、私は出力にこのような配列が必要になります。
chart['weeks']=["23","24"]
chart['hours']=[[59100000,6300000],[65400000,6300000]]
これはおそらく、シンプルであり、それはちょうど私が思考ハンガーノックだ...しかし、誰もが解決策を持っている場合、私はなるだろう感謝します。
ありがとうございます。
アップデート:このを参照してください可能性がある人のため
、結果の配列はchart.jsのため正しくありません。以下の回答は正しいです...尋ねられたように、私はちょうど間違ったことを尋ね、後にしか実現しませんでした。馬鹿のように感じ:/
Chart.jsがしたいことはある同じ配列で、その代わりに、上記の例のすべての行の値です:
chart['weeks']=["23","24"]
chart['hours']=[[onhours,offhours],[onhours,offhours]]
それは次のようになります。
chart['weeks']=["23","24"]
chart['hours']=[[onhours,onhours],[offhours,offhours]]
更新2
さらに明確にする:
各ラベルには値が必要です。ラベルが3つある場合は、3つの値が必要です。私の場合、値の配列は2セットあります。これは、2シリーズ(2行)、1時間、1時間、1時間です。ここでは配列の完全なリストを示します。
chart['labels']=["23","24","25","26"] // strings
chart['data']=[[onhours,onhours,onhours,onhours]] // integers, notice [ [ ] ]
chart['series']=['On Hours'] // strings
希望に役立ちます:私は唯一の1行を必要に応じて
chart['labels']=["23","24","25"] // strings
chart['data']=[[onhours,onhours,onhours],[offhours,offhours,offhours]] // integers
chart['series']=['On Hours','Off Hours'] // strings
!
あなたは一例に拡張してもらえますか?例えばあなたが 'chart ['hours'] = [[onhours、onhours、onhours]、[offhours]を持っていれば、あなたは' chart ['weeks'] = ["23"、 "24"、 "25" 、offhours、offhours]] '? –
@HopefulLlama - はい、正しいです。私は例を更新しました。今はっきりしていることを願っています。 – Chris
あなたが必要かどうかわかりませんが、私は自分の答えを更新しました。 –