javascript - 如何使用 typescript/javascript 填充对象数组中缺失的日期?
问题描述
我想从今天到接下来的 7 天填充这个对象。这是我的对象
let obj = {
"sessions": [{
"date": "15-05-2021"
},
{
"date": "16-05-2021"
},
{
"date": "18-05-2021"
}]
}
预期输出:
let output = {
"sessions": [{
"date": "14-05-2021"
},
{
"date": "15-05-2021"
},
{
"date": "16-05-2021"
},
{
"date": "17-05-2021"
},
{
"date": "18-05-2021"
},
{
"date": "19-05-2021"
},
{
"date": "20-05-2021"
}]
}
这是生成从今天到接下来 7 天的日期数组的代码
function getWeekDates() {
let dates = [];
dates.push(new Date(Date.now() + 1000 * 3600 * 1).toLocaleDateString('en-GB').replace('/', '-').replace('/', '-'));
for (let i = 1; i <= 6; i++) {
dates.push(new Date(Date.now() + 1000 * 3600 * (i * 24)).toLocaleDateString('en-GB').replace('/', '-').replace('/', '-'));
}
console.log(dates);
}
getWeekDates();
//Output:["14-05-2021", "15-05-2021", "16-05-2021", "17-05-2021", "18-05-2021", "19-05-2021", "20-05-2021"]
我是新手,所以请对我放轻松。
提前致谢...
解决方案
您可以通过用新生成的日期替换 obj.sessions 来做到这一点。
let obj = {
"sessions": [{
"date": "15-05-2021"
},
{
"date": "16-05-2021"
},
{
"date": "18-05-2021"
}]
}
function getWeekDates() {
let dates = [];
dates.push({ "date": new Date(Date.now() + 1000 * 3600 * 1).toLocaleDateString('en-GB').replace('/', '-').replace('/', '-')});
for (let i = 1; i <= 6; i++) {
dates.push({ "date": new Date(Date.now() + 1000 * 3600 * (i * 24)).toLocaleDateString('en-GB').replace('/', '-').replace('/', '-')});
}
obj.sessions = [...dates]
console.log(obj)
}
getWeekDates();
推荐阅读
- javascript - how to use sibling selector css in styled
- amazon-web-services - 是否有定义了多个 CacheBehaviors 的示例 cloudformation 模板?
- java - 如何检查二进制格式的访问号码?
- c++ - 具有自己的类和 std::string_view 的“operator==”的模棱两可的重载
- android - 如何在前台服务(Oreo、Pie、Android 10)中使用 Location (android.gms.location.*)
- jmeter - jMeter中的倒计时
- azure - Azure WebApp 中的 IP 保护特定路径/url
- c# - RabbitMQ 消费者跳过 Received 事件并且没有收到消息
- visual-studio - 删除未使用的图像后损坏的 Resources.resx
- python - 将 sql 文本文件加载到变量中并通过 pymysql 提交插入/更新查询会产生警告-可以忽略吗?