为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 switch case 将包含字符串的 a 值放入数组中的正确对象中?

如何使用 switch case 将包含字符串的 a 值放入数组中的正确对象中?

牧羊人nacy 2022-05-26 11:18:26
我有一个data看起来像这样的数组:{"data": [    {        "season": "autumn",        "firstContactPersonName": "John",        "firstContactPersonPhone": "46442644",        "secondContactPersonName": "Jhonny",        "secondContactPersonPhone": "46442644"    },    {        "season": "christmas",        "firstContactPersonName": "Tommy",        "firstContactPersonPhone": "46442644",        "secondContactPersonPhone": "Thomas"    },    {        "season": "winter",        "firstContactPersonPhone": "46442644",        "firstContactPersonName": "Peter",        "secondContactPersonName": "Tom",        "secondContactPersonPhone": "44664455"    }  ]}但有时可能会出现:{"data": [    {        "season": "christmas",        "firstContactPersonName": "Tommy",        "firstContactPersonPhone": "46442644",        "secondContactPersonPhone": "Thomas"    },    {        "season": "autumn",        "firstContactPersonName": "John",        "firstContactPersonPhone": "46442644",        "secondContactPersonName": "Jhonny",        "secondContactPersonPhone": "46442644"    }  ]}data数组可以改变。我有另一个包含一些日期的数组。他们在数组中有以下日期:const dateArray = ["christmas=2020-12-28", "autumn=2020-08-28", "winter=2020-02-28"].有时可能会有 const dateArray = ["christmas=2020-12-28", "autumn=2020-08-28"]我怎样才能将data数组中的这些日期插入到正确的对象中而不实际告诉对象在哪个位置?我怎样才能找到autumn,christmas或 所在的位置winter,然后将正确的日期放入正确的对象中?如果我向data数组中添加新对象怎么办?换句话说,我需要一些动态的方法来为我处理它。所以我可以在日期之前添加新键=并插入到data数组中的正确对象中。
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

let data = [

    {

        "season": "autumn",

        "firstContactPersonName": "John",

        "firstContactPersonPhone": "46442644",

        "secondContactPersonName": "Jhonny",

        "secondContactPersonPhone": "46442644"

    },

    {

        "season": "christmas",

        "firstContactPersonName": "Tommy",

        "firstContactPersonPhone": "46442644",

        "secondContactPersonPhone": "Thomas"

    },

    {

        "season": "winter",

        "firstContactPersonPhone": "46442644",

        "firstContactPersonName": "Peter",

        "secondContactPersonName": "Tom",

        "secondContactPersonPhone": "44664455"

    }

  ]


const dateArray = ["christmas=2020-12-28", "autumn=2020-08-28", "winter=2020-02-28"]

let updatedData = data.map((x)=> {

  let season = x.season;

   x.date = dateArray.find(e=> e.indexOf(season) > -1).split("=")[1];

  return x;

  })

                           


console.log(updatedData)


查看完整回答
反对 回复 2022-05-26
?
达令说

TA贡献1821条经验 获得超6个赞

不是用开关,但这是一种方法:


  dateArray.forEach(date => {

        if (date.includes("autumn")) {

          data.data[0] = { ...data.data[0], date };

        } else if (date.includes("christmas")) {

          data.data[1] = { ...data.data[1], date };

        } else if (date.includes("winter")) {

          data.data[2] = { ...data.data[2], date };

        }

      });


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信