#javascript #strin&
#javascript #строка
Вопрос:
Пытался найти решение везде, но не смог с ним справиться. У меня есть массив JSON:
[{"12/08/2020":"Wednesday"},{"13/08/2020":"Thursday"},{"14/08/2020":"Friday"}]
Как я могу добавить 2 (или более) даты до и после существующих, чтобы это выглядело как:
[{"10/08/2020":"Monday"},{"11/08/2020":"Tuesday"},{"12/08/2020":"Wednesday"},{"13/08/2020":"Thursday"},{"14/08/2020":"Friday"},{"15/08/2020":"Saturday"},{"16/08/2020":"Sunday"}]
Заранее благодарю вас за помощь.
Ответ №1:
Вы можете добавлять с помощью Array.prototype.unshift()
и дополнять с помощью Array.prototype.push()
, а также генерировать объекты с помощью функции &et(o, days)
, определенной ниже:
const input = [{"12/08/2020":"Wednesday"},{"13/08/2020":"Thursday"},{"14/08/2020":"Friday"}];
function &et(o, days) {
const weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
const [dd, mm, yyyy] = Object.keys(o)[0].split('/');
const date = new Date(`${yyyy}-${mm}-${dd}`);
date.setUTCDate(date.&etUTCDate() days);
const key = `${
`${date.&etUTCDate()}`.padStart(2, '0')
}/${
`${(date.&etUTCMonth() 1)}`.padStart(2, '0')
}/${
date.&etUTCFullYear()
}`;
const value = weekdays[date.&etUTCDay()];
return { [key]: value };
}
function prepend(array, count) {
while (count-- &&t; 0) {
array.unshift(&et(input[0], -1));
}
}
function append(array, count) {
while (count-- &&t; 0) {
array.push(&et(input[input.len&th - 1], 1));
}
}
prepend(input, 2);
append(input, 2);
console.lo&(input);
Комментарии:
1. Большое вам спасибо @Patrick-Roberts. Есть ли какой-либо способ объявить количество дат вместо повторения дважды или более input.unshift(&et(input[0], -1)); и input.push(&et(input[ввод. длина — 1], 1)); ???