【问题标题】:Unable to remove the double quotes from the value pair无法从值对中删除双引号
【发布时间】:2018-09-14 08:43:14
【问题描述】:

我正在获取日期数据并将日期设置到 JSON 对象中

let lastSeven = moment().subtract(7, 'd').toDate();
var dat =  moment(lastSeven).format('D');

dat = dat.replace(/^"(.*)"$/, '$1');

我必须得到这样的数据

{
  'year': 2018,
  'month': 9,
  'day': 14
};

但是在替换之后我也得到了

{
  'year': "2018",
  'month': "9",
  'day': "14"
};

如何从值中删除双引号?

【问题讨论】:

    标签: javascript json momentjs


    【解决方案1】:

    您需要将字符串转换为数字。

    for(var key in data){
        data[key] = Number(data[key]);
    }
    

    【讨论】:

      【解决方案2】:

      如果没有双引号,它们将是数字,因此将所有值转换为数字。

      let obj = {
        'year': 2018,
        'month': 9,
        'day': 14
      };
      
      for (let property in obj) {
        if (obj.hasOwnProperty(property)) obj[property] = +obj[property];
      }
      console.log(obj);

      【讨论】:

        【解决方案3】:

        你可以这样尝试使用Array.prototype.map()

        var myObject = {
          'year': "2018",
          'month': "9",
          'day': "14"
        };
        var result = {};
        Object.keys(myObject).map(function(key, index) {
          result[key] = +myObject[key];
        });
        console.log(result)

        【讨论】:

          猜你喜欢
          • 2017-05-21
          • 1970-01-01
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 2019-12-25
          • 2020-02-18
          • 2017-02-13
          • 1970-01-01
          相关资源
          最近更新 更多