0:{entry_counts:2000、week_end_date: "2016-09-01"} 1:{entry_counts:10000、week_end_date: "2016-09-08"} 2:{entry_counts:20000 、week_end_date: "2016-09-22"} 3:{entry_counts:40000、week_end_date: "2016-09-29"} 4:{entry_counts:150000、week_end_date: "2016-10-13"}対応する値で日付配列を準備する
0
A
答えて
1
あなたの日付にはどんな種類のタイムゾーンや時刻データも含まれていないので、UTCのタイムゾーンとして扱われます。私たちはこのことについて私たちを助ける瞬間は本当に必要ありません。
また、コード内で非常に長い参照を使用しているため、読みにくくなり、エラーが発生しやすくなります。 (例:data.entryDetails[0].entry_counts[count].entry_counts;
) これをいくつかの変数を使って切り詰めることをお勧めします。これにより、値が有効か定義されているかどうかを簡単に確認することもできます。
時間と時間を増やして作業する場合、valueOfは非常に便利です。私はあなたのための簡単なスクリプトを書いた。私はそれがいくつかのエラーチェックとデータが定義されていることを確認して改善することができると確信しています。これ以外にも、あなたにとって役に立つはずです!
ハッピーホリデー!
var countData = [ {entry_counts: 2000, week_end_date: "2016-09-01"},{entry_counts: 10000, week_end_date: "2016-09-08"},{entry_counts: 20000, week_end_date: "2016-09-22"},{entry_counts: 40000, week_end_date: "2016-09-29"},{entry_counts: 150000, week_end_date: "2016-10-13"} ]
var today = (new Date()).valueOf()
var currentEntry = parseEntry(countData.shift())
var nextEntry = parseEntry(countData.length ? countData.shift() : null)
var viewsArray = []
var datesArray = []
var time = currentEntry.dateValue
while(time <= today){
// update currentEntry data used to the most up-to-date data we have
if(nextEntry && time > nextEntry.dateValue) {
while(nextEntry && time > nextEntry.dateValue){
currentEntry = nextEntry
nextEntry = parseEntry(countData.length ? countData.shift() : null)
}
}
viewsArray.push(currentEntry.views)
datesArray.push(new Date(time))
time += daysInMilliseconds(7)
}
console.log(viewsArray)
function parseEntry(entry) {
if(!entry) return null
entry.date = new Date(entry.week_end_date)
entry.dateValue = entry.date.valueOf()
entry.views = entry.entry_counts
return entry
}
function daysInMilliseconds(days) {
return days * 24 * 60 * 60 * 1000
}
関連する問題
- 1. 現在の月の日に対応する配列を表示
- 2. 配列を対応する配列で並べ替える
- 3. 配列内の対応する要素
- 4. PHPキーを比較し、多次元配列から対応するキーの値を単純な配列の対応するキーの値に変更します。
- 5. Rは、対応する列には値
- 6. 日付の配列に日付パイプを使用するAngular2
- 7. 値が前日の配列に欠落している日付
- 8. Excelで日付に対する値を見つける方法
- 9. Mavenリリース:非対話型で準備する
- 10. json配列の準備文のエラーを返します
- 11. Mysql準備ステートメントは、変数の列の値を取る
- 12. PHP年の日付を基準にした列の平均値
- 13. 非標準日付形式を日付に変換するR
- 14. ナビゲーションアイテムの準備をする
- 15. グループ対応する月と合計時間の日付
- 16. 配列を準備してデータをフェッチしてステートメントを選択する
- 17. symfony:応答準備完了イベント
- 18. 別の配列の最大値に対応する配列内の要素を見つける
- 19. ベース配列(日付付き)ハイライト日付ピッカー日付
- 20. 日付文字列の配列を日付オブジェクトの配列に変換する方法Swift
- 21. オブジェクトの解析可能なjson配列を準備するには?
- 22. は、JSONと、配列に基づいてJSONデータを準備する - JavaScriptの
- 23. 準備されたSQL文の中に配列を設定する
- 24. カーネルをロードする準備をする
- 25. Pythonで複数の日付列と列値を連結する
- 26. ナビゲーションコントローラのバックボタンでSegueを準備する
- 27. mysqlの日付に対応する四半期を取得する
- 28. 対応する値でSFrameヘッダにユニークな列を変換
- 29. 対応する列ランダム3つの値と異なる列の値を表示
- 30. 日と対応する価格のデータベース
これは魔法のように動作します!ずっときれいで短く。どうもありがとう! コードを教えてください。そして、私が間違っていたことは? :) –
"*私はそれがローカルタイムゾーン*にあると推測できると思うが、あなたはそうではない。 Dateコンストラクタを使用してISO 8601形式の日付文字列を解析すると、それらはUTCとして扱われるため、 'new Date()'によって作成された日付と比較するとホストタイムゾーンによってシフトされます。あなたはその日の特定の時間に間違った結果を得ます。 – RobG
あなたは正しいです、私はそれを変更しました。 – SnailCrusher