javascript - 如何用特定值替换数组并添加到特定索引中?

标签 javascript arrays datetime

以下是代码片段::

  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)

关于javascript - 如何用特定值替换数组并添加到特定索引中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612512/

相关文章:

java - ArrayList 到 ArrayList<类型>

javascript - 将日期设置为 Jquery UI 日期选择器输入文本框

javascript - react : Is a component entirely re-rendered on every setState()?

javascript - 在 JavaScript 中使用 for 循环组合两个数组

javascript - 设置日期选择器 onChange 的状态

java - 日期和日期时间应该如何序列化 SOAP (xml) 消息

c++ - boost 日期时间 : time_duration from seconds to multiple days

java - 从我的 Android 应用程序中的网页获取点击事件

javascript - 如何清理最不常用的 Node 包?

java - 在java中压缩两个数组