我希望员工在当天安排工作。在网站上,我需要将剩余天数显示为休假。如果为员工分配了两个不同的类次,则该对象可以有两个元素。
var WorkDays = [{day:3}, {day:3}, {day:1}, {day:1}, {day:0}];
var days = [0, 1, 2, 3, 4, 5, 6}];
新创建的 WordDays 应该如下所示
WorkDays = [{day:0}, {day:1}, {day:1},{day:2}, {day:3}, { day:3} ,{ day:4}, {day:5}, {day:6}];
最佳答案
假设您的意思是: [{day:0}, {day:1},...]
您可以使用函数reduce
。
var WorkDays = [{day:3}, {day:3}, {day:1}, {day:1}, {day:0}],
days = [0, 1, 2, 3, 4, 5, 6],
result = days.reduce((days, c) => {
if (!days.some(({day}) => day === c)) days.push({day: c});
return days;
}, WorkDays).sort((a, b) => a.day - b.day);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 比较对象并添加不匹配的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49208667/