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;
) Я бы предложил сократить это, используя некоторые переменные. Это также облегчает проверку правильности или даже значения.
При работе со временем и приращением времени значениеOf очень полезно. Я написал для вас быстрый сценарий. Я уверен, что его можно улучшить с некоторой проверкой ошибок и убедиться, что данные определены. Кроме этого это должно быть полезно для вас!
С праздником!
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. SQL заменить поле массива с соответствующими значениями
- 2. Найти элементы массива с соответствующими значениями
- 3. Как объединить значения массива с соответствующими значениями
- 4. Распечатать предупреждение() с соответствующими значениями
- 5. Swift перечисление с соответствующими значениями
- 6. Javascript фильтрует массив с соответствующими значениями
- 7. Как отсортировать массив с соответствующими идентификаторами или значениями массива?
- 8. Как объединить массив ключей с соответствующими значениями из другого массива?
- 9. Сравнение значений хэша с соответствующими значениями массива в Ruby
- 10. Создание задания SQL Server с соответствующими значениями
- 11. C инициализация (очень) большого целочисленного массива со значениями, соответствующими индексу
- 12. Выравнивание столбцов с соответствующими значениями (снимок экрана)
- 13. C# - Чтение командной строки с соответствующими значениями
- 14. Массивы, содержащие перечислений с соответствующими значениями
- 15. Элегантный сериализации/десериализации перечисления с соответствующими значениями
- 16. MVC4 Просмотр несовместимо с соответствующими модальными значениями
- 17. Shapefiles окрашены в соответствии с соответствующими значениями
- 18. Словарь - сопоставление рандомизированных ключей с соответствующими значениями
- 19. отдавайте Html с соответствующими значениями в Джанго
- 20. записывая код с соответствующими значениями переменных
- 21. Добавление массива с соответствующими каталогами
- 22. Сортировка массива с соответствующими массивами
- 23. Заменить переменные из текста соответствующими значениями
- 24. Сравнение дат с нулевыми значениями
- 25. разница между значениями дат
- 26. Как заменить идентификаторы соответствующими значениями в SQL?
- 27. Заполнение кадра данных соответствующими значениями из другого
- 28. Заполнение всех строк соответствующими значениями группы (ddply?)
- 29. Создайте вектор со значениями, соответствующими отдельной матрице
- 30. , соединяющий 2 файла с соответствующими значениями столбцов с помощью awk
Это работает как шарм! Гораздо чище и короче. Большое спасибо! Не могли бы вы дать мне прохождение кода? И что я делал неправильно? :) –
«Я думаю, мы можем предположить, что он будет в локальном часовом поясе *», но вы этого не сделаете. Использование конструктора Date для синтаксического анализа строк даты ISO 8601 означает, что они будут обрабатываться как UTC, поэтому они будут сдвинуты по часовой пояс хоста по сравнению с датами, созданными 'new Date()'. Вы получите неправильные результаты в течение определенного времени дня, а не других. – RobG
Вы правы, я изменил его. – SnailCrusher