将对象值转换为大写

时间:2017-05-19 06:44:32

标签: javascript

我有一个像下面这样的JavaScript对象。我想将所有键转换为大写。我正在寻找像

这样的解决方案
JSON.stringify(jsonObj).replace();

任何人都可以帮我用实际的正则表达式做同样的事吗?

输入:

{"data": [
    {
      "id": 4,
      "first_name": "eve",
      "last_name": "holt",
      "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
    }]}

我期待的输出:

{"DATA": [
    {
      "ID": 4,
      "FIRST_NAME": "eve",
      "LAST_NAME": "holt",
      "AVATAR": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
    }]}

1 个答案:

答案 0 :(得分:4)

使用JSON.stringify's替换参数:

var obj = {
  "data": [{
    "id": 4,
    "first_name": "eve",
    "last_name": "holt",
    "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
  }]
};

console.log(JSON.stringify(obj, function(key, value) {
  if (typeof value === 'object' && value && !Array.isArray(value)) {
    return Object.keys(value).reduce(function(obj, k) {
      obj[k.toUpperCase()] = value[k];
      return obj;
    }, {});
  }
  return value;
}, 2));

当然,如果你真的想要一个对象,而不是JSON,那就用

var newObj = Object.keys(obj).reduce(function(o, k) {
  o[k.toUpperCase()] = obj[k];
  return o;
}, {});