【问题标题】:convert into json object label value format转换成json对象标签值格式
【发布时间】:2019-02-27 18:38:46
【问题描述】:

我有以下类型的对象:

{
    2019-02-28 02:36:20: "5 minutes"
    2019-02-28 23:59:59: "Today"
    2019-03-01 02:31:20: "+1 Day"
    2019-03-02 02:31:20: "+2 Days"
    2019-03-03 02:31:20: "+3 Days"
    2019-03-07 02:31:20: "+1 Week"
    2019-03-14 02:31:20: "+2 Weeks"
    2019-03-21 02:31:20: "+3 Weeks"
    2019-03-28 02:31:20: "+1 Month"
    2019-04-28 02:31:20: "+2 Months"
    2019-05-28 02:31:20: ">2 Months"
}

我想把它转换成:

[
   {
      label:'5 minutes',
      value:'2019-02-28 02:36:20'
   },
   {
      label:'Today',
      value:'2019-02-28 23:59:59'
   },
]

通过使用下面的这个函数,我只能得到键和值,但我无法创建这种类型的数组。请任何人帮助我。

closeDate = Object.values(state.finalRequest.closeDate);
closeDateKey = Object.keys(state.finalRequest.closeDate);

【问题讨论】:

    标签: javascript android ios reactjs react-native


    【解决方案1】:

    您可以使用Object.entries,然后使用map以所需的形式映射它

    let obj = {"2019-02-28 02:36:20": "5 minutes","2019-02-28 23:59:59": "Today","2019-03-01 02:31:20": "+1 Day","2019-03-02 02:31:20": "+2 Days","2019-03-03 02:31:20": "+3 Days","2019-03-07 02:31:20": "+1 Week","2019-03-14 02:31:20": "+2 Weeks","2019-03-21 02:31:20": "+3 Weeks","2019-03-28 02:31:20": "+1 Month","2019-04-28 02:31:20": "+2 Months","2019-05-28 02:31:20": ">2 Months"}
    
    let op = Object.entries(obj)
             .map(([ label, value ] ) => ({ label, value }))
    
    console.log(op)

    【讨论】:

      【解决方案2】:

      在这里,您可以使用 for ... in 来迭代输入对象:

      const input = {
        "2019-02-28 02:36:20": "5 minutes",
        "2019-02-28 23:59:59": "Today",
        "2019-03-01 02:31:20": "+1 Day",
        "2019-03-02 02:31:20": "+2 Days",
        "2019-03-03 02:31:20": "+3 Days",
        "2019-03-07 02:31:20": "+1 Week",
        "2019-03-14 02:31:20": "+2 Weeks",
        "2019-03-21 02:31:20": "+3 Weeks",
        "2019-03-28 02:31:20": "+1 Month",
        "2019-04-28 02:31:20": "+2 Months",
        "2019-05-28 02:31:20": ">2 Months"
      };
      
      let res = [];
      
      for (const key in input)
      {
          res.push({label:input[key], value:key});
      }
      
      console.log(res);
      .as-console {background-color:black !important; color:lime;}
      .as-console-wrapper {max-height:100% !important; top:0;}

      【讨论】:

        猜你喜欢
        • 2021-10-18
        • 2019-08-05
        • 2020-09-29
        • 1970-01-01
        • 2017-05-09
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多