Oli*_*ver 3 javascript ecmascript-6 reactjs
我一年四季都有这样的数组:
const days = ["2019-01-01", "2019-01-02", "2019-01-03" ...]
Run Code Online (Sandbox Code Playgroud)
我有一个对象可以保存特定日期的计划和完成的任务:
const tasks = {"2019-01-01": {"planned": 3, "completed": 2,}, "2019-01-03": { "planned": 1, "completed": 0 }, "2019-01-10": { "planned": 1, "completed": 1} ... }
Run Code Online (Sandbox Code Playgroud)
我想要的是一个新对象,该对象包含整天的信息(无论任务是否计划和完成),如下所示:
const tasksNew = {"2019-01-01": {"planned": 3, "completed": 2}, "2019-02-02": {"planned": 0, "completed": 0} ...}
Run Code Online (Sandbox Code Playgroud)
我知道这在某种程度上可以与reduce一起使用,但目前我无法帮助自己。
reduce在您的days阵列上使用。对于每天在tasks对象中找到的条目,将其添加到累加器中,否则,返回默认条目。
const days = ["2019-01-01", "2019-01-02", "2019-01-03"];
const tasks = {"2019-01-01": {"planned": 3, "completed": 2,}, "2019-01-03": { "planned": 1, "completed": 0 }, "2019-01-10": { "planned": 1, "completed": 1} };
const tasksNew = days.reduce((accum, day) => {
accum[day] = tasks[day] ? tasks[day] : { planned: 0, completed: 0 };
return accum;
}, {});
console.log(tasksNew);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |