【问题标题】:Move objects with specific keys to array and rename fields将具有特定键的对象移动到数组并重命名字段
【发布时间】:2021-08-27 18:46:26
【问题描述】:

如何将带有“工作日”的对象移动到数组中,并在 JavaScript/TypeScript 中将“星期一”、“星期二”、...替换为以“0”开头的“dayIndex”?

当前输出:

[
  {
    'Calendar Name': 'Standard',
    'Valid From': 44197,
    'Valid To': 44561,
    'Use Holidays': 'yes',
    'Working Day': 'Monday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Tuesday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Wednesday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Thursday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    'Working Day': 'Friday',
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  { 'Working Day': 'Saturday', Start: '-', End: '-' },
  { 'Working Day': 'Sunday', Start: '-', End: '-' }
]

所需的 JSON:

{
 "name": "Standard",
 "validFrom": "2021-01-01T00:00:00.000Z",
 "validTo": "2021-12-31T00:00:00.000Z",
 "useHolidays": true,
 "workingDays": [
  {
    "dayIndex": 0,
    "dayStart": "8:00",
    "dayEnd": "20:00"
  },
  {
    "dayIndex": 1,
    "dayStart": "8:00",
    "dayEnd": "20:00"
  },
  ...
  {
    "dayIndex": 6,
    "dayStart": "-",
    "dayEnd": "-"
  },
 ],
 "uploadedBy": "foo"
}

【问题讨论】:

  • Sooo 问题代码在哪里——你自己尝试编写的代码?

标签: javascript arrays json typescript object


【解决方案1】:

const array = [
  {
    "Calendar Name": "Standard",
    "Valid From": 44197,
    "Valid To": 44561,
    "Use Holidays": "yes",
    "Working Day": "Monday",
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    "Working Day": "Tuesday",
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    "Working Day": "Wednesday",
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    "Working Day": "Thursday",
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  {
    "Working Day": "Friday",
    Start: 0.3333333333333333,
    End: 0.8333333333333334
  },
  { "Working Day": "Saturday", Start: "-", End: "-" },
  { "Working Day": "Sunday", Start: "-", End: "-" }
];

let customObject = {
  name: "",
  validFrom: "",
  validTo: "",
  useHolidays: true,
  workingDays: []
};

array.forEach((t, index) => {
  if (index === 0) {
    customObject.name = t["Calendar Name"];
    customObject.validFrom = t["Valid From"];
    customObject.validTo = t["Valid To"];
    customObject.useHolidays = t["Use Holidays"];
    customObject.uploadedBy = "foo";
  }
  customObject.workingDays.push({
    dayIndex: index,
    dayStart: t.Start,
    dayEnd: t.End
  });
});

console.log(customObject)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2021-07-03
    相关资源
    最近更新 更多