javascript - 如何用特定值替换数组并添加到特定索引中?
问题描述
以下是代码片段::
let dayOfWeek=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
let officeHoursList: [
{dayOfWeek: "Wednesday", beginHour: "08:30 AM", endHour: "04:30 PM"}]
在这里,我需要比较两个数组,如果 dayOfWeek 不存在于 officeHoursList 中,那么它将剩余的 dayOfWeek 添加到 officeHoursList 中。
例如,在这种情况下,最终输出将是
officeHoursList: [
{dayOfWeek: "Monday", beginHour: "00:00 AM", endHour: "00:00 PM"},
{dayOfWeek: "Tuesday", beginHour: "00:00 AM", endHour: "00:00 PM"},
{dayOfWeek: "Wednesday", beginHour: "08:30 AM", endHour: "04:30 PM"},
.
.
.
{dayOfWeek: "Sunday", beginHour: "00:00 AM", endHour: "00:00 PM"}]
这里数组 officeHoursList 的值是动态的,在这种情况下它只包含星期三,但它可以是从星期一到星期日的任何动态值。
提前致谢
解决方案
使用方法reduce()
_filter()
let dayOfWeek = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
let officeHoursList = [{dayOfWeek: "Wednesday", beginHour: "08:30 AM", endHour: "04:30 PM"}]
let result = dayOfWeek.reduce((acc, day) => {
let officeHour = officeHoursList.filter(officeHour => officeHour.dayOfWeek === day)
if (officeHour.length) {
acc.push(officeHour)
} else {
acc.push({dayOfWeek: day, beginHour: "00:00 AM", endHour: "00:00 PM"})
}
return acc;
}, [])
console.log(result)
推荐阅读
- go - 使用 kubernetes/go-client 无法从集群配置中恢复数据
- python - 使用 Python Paramiko 在不同的 SSH 服务器中并行运行多个命令
- python - 使用活动监视器 API 和 python 更新订阅者自定义字段
- javascript - 在节点 js 中填充
- linux - 如何在 Linux 虚拟机中下载最新版本的 Haskell?
- javascript - 如何使用 javascript 将图像附加到特定的网格项
- r - 多目标优化约束问题:R
- permissions - 创建具有权限的静态角色的最佳实践
- sql - 基于第三个表连接两个表(SQLite)
- php - 我可以同时将数据从 php 保存到 json 和 MySQL 数据库吗?