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. 配列を対応する配列で並べ替える
- 5. 対応する入力値を持つチェックボックス配列
- 6. 最新の5つの日付に対応するセルの値を返す
- 7. 配列内の対応する要素
- 8. PHPキーを比較し、多次元配列から対応するキーの値を単純な配列の対応するキーの値に変更します。
- 9. 日付の配列に日付パイプを使用するAngular2
- 10. Androidでランダムに対応する配列を作成する
- 11. Rは、対応する列には値
- 12. Excelで日付に対する値を見つける方法
- 13. Mavenリリース:非対話型で準備する
- 14. 値が前日の配列に欠落している日付
- 15. 日時の配列を配列にする日時配列は、その後に対応する時刻を取得します。
- 16. オブジェクトのキー内部配列に対応する値を取得する
- 17. Perl配列をOracleに渡すIN句の準備クエリ
- 18. json配列の準備文のエラーを返します
- 19. ナビゲーションアイテムの準備をする
- 20. Mysql準備ステートメントは、変数の列の値を取る
- 21. 非標準日付形式を日付に変換するR
- 22. PHP年の日付を基準にした列の平均値
- 23. 日付の配列を異なる日付形式の文字列の配列に変更する - JavaScript
- 24. 他の列の対応する位置でパンダの条件付き戻り値
- 25. グループ対応する月と合計時間の日付
- 26. 配列値0と255を対応する0と1の配列に変換する方法
- 27. 日付でPHP配列グループ
- 28. 配列内の最大値とそれに対応する文字列は
- 29. 配列を準備してデータをフェッチしてステートメントを選択する
- 30. csv他の列に対応する列を読み取る値
これは魔法のように動作します!ずっときれいで短く。どうもありがとう! コードを教えてください。そして、私が間違っていたことは? :) –
"*私はそれがローカルタイムゾーン*にあると推測できると思うが、あなたはそうではない。 Dateコンストラクタを使用してISO 8601形式の日付文字列を解析すると、それらはUTCとして扱われるため、 'new Date()'によって作成された日付と比較するとホストタイムゾーンによってシフトされます。あなたはその日の特定の時間に間違った結果を得ます。 – RobG
あなたは正しいです、私はそれを変更しました。 – SnailCrusher