在JSON React中将值移动到另一个对象

ego6inou  于 2023-06-25  发布在  React
关注(0)|答案(1)|浏览(116)

我有一个JSON文件,里面有一周中的几天,以及商店在午夜后几秒钟内的开门和关门时间。

{
  "friday": [{ "type": "open", "value": 36000 }],
  "saturday": [
    { "type": "close", "value": 3600 },
    { "type": "open", "value": 36000 }
  ],
  "sunday": [
    { "type": "close", "value": 3600 },
    { "type": "open", "value": 43200 },
    { "type": "close", "value": 75600 }
  ]
}

周五,这家店上午10点开门,周六凌晨1点关门。关闭时间的值在“星期六”键内,但我需要用星期五键显示。我无法修改JSON文件。
我有一个Map,在这里我做了一个循环抛出天,另一个循环抛出每天的值。到目前为止,我可以显示每一天的价值。但我找不到一个解决方案来显示价值的第二天(当商店关闭在凌晨1点)与相应的一天,它应该是,一个有营业时间。

{days.map((day: string, index) => {
        return (
          <div key={index}>
            {eachDay.length && (
               eachDay.map((day: any, index: number) => (
                 <p key={index} className="hours">
                   {settingHours(day.value)}
                 </p>
              ))
          </div>
        );
      })}
zlhcx6iw

zlhcx6iw1#

您可以在Map函数中使用index参数来显示商店的关闭时间,该时间对应于商店开门的日期。

{days.map((day: string, index) => {
    const nextDayIndex = index === days.length - 1 ? 0 : index + 1;
    const nextDay = days[nextDayIndex];

    return (
      <div key={index}>
        {eachDay.length &&
          eachDay.map((day: any, index: number) => (
            <p key={index} className="hours">
              {settingHours(day.value)}
            </p>
          ))}

        {nextDay && nextDay[0].type === "close" && (
          <p className="hours">
            Closing time: {settingHours(nextDay[0].value)} on {nextDayIndex}
          </p>
        )}
      </div>
    );
  });
}

相关问题