Мой вопрос новичка в JS на самом деле включает в себя несколько компонентов (подробно описано ниже), но я был бы рад получить помощь только по основам: Как рассчитать разницу между датами для выбора значений объектов в массиве?
Я понимаю, что в Интернете есть много примеров того, как создавать итерационные циклы и , исследуя разницу между датами .Но в большинстве этих примеров вычисления длительности используется одна переменная, и примеры в циклах, как правило, включают в себя операторы типа // Do something
, а не предоставляют примеры для включения функций.Я (пока) не нашел вопрос, который решает эту конкретную (простую) проблему.
Самое близкое, что я дошел, это то, что стремится вычислить разницу между одним из значений объекта и сегодняшним днем.:
durationArray = {
var myArray = report_data;
var arrayLength = report_data.length;
for (var i = 0; i < arrayLength; i++) {
var copy = new Date(report_data[i]["Start Date"]);
var duration_adjusted = (today - copy)/24/60/60/1000;
return duration_adjusted;
}
return myArray
}
С report_data
, поставляемым как:
report_data = [{
"Author Name": "Joe",
"Unit Name": "IT",
"Report Name": "Tech Paper 1",
"Start Date": "2/3/2014",
"End Date": "21-Mar-17"
},
{
"Author Name": "Carole",
"Unit Name": "IT",
"Report Name": "Tech Paper 2",
"Start Date": "4/8/2015",
"End Date": "5-May-16"
},
{
"Author Name": "Bob",
"Unit Name": "IT",
"Report Name": "Tech Paper 3",
"Start Date": "6/16/2015",
"End Date": "30-May-17"
},
{
"Author Name": "Sue",
"Unit Name": "IT",
"Report Name": "Tech Paper 4",
"Start Date": "7/16/2015",
"End Date": "pending"
}]
Но этот код неверен, поскольку он возвращает только одно значение (не значения для всех объектов массива).Кроме того, я хотел бы сравнить два объекта в массиве ["Start Date"]
и ["End Date]
, а не только вычислять разницу между сегодняшним днем и датой начала (но я не продвинулся так далеко в моих попытках, потому что я могу 'итерируйте правильно).
В случае, если это поможет облегчить ответ, вот записная книжка, которую можно наблюдать, с моим ошибочным кодом .
Если вы чувствуете себя очень щедрым иликак сложная задача (я понимаю, что это очень простой вопрос), то вот где начинается вторая часть вопроса:
В последнем элементе моих фиктивных данных вместо даты есть значение"в ожидании" (указывает, что отчет не закончен).В дополнение к вычислению разницы между объектами массива ["Start Date"]
и ["End Date]
, я хотел бы добавить инструкцию "else", которая для "отложенных" значений вычисляет разницу между today
и ["Start Date"]
.
Надеюсь, это понятно и что меня не слишком сильно ударили, чтобы поднять этот самый вопрос «новичка».Я изучаю JS из дома с помощью учебных пособий, и уже несколько дней пытаюсь правильно их комбинировать, поэтому я обращаюсь к вам за помощью.
Заранее спасибо за ваше время и рекомендации!