如何将对象键转换为大写

时间:2019-04-24 09:26:23

标签: javascript typescript object ecmascript-6

我想将小写字母转换为大写字母。但是找不到我的尝试。

什么是正确的方法?

这是我的尝试:

var obj = {
  name: "new name",
  age: 33
}

const x = Object.assign({}, obj);

for (const [key, value] of Object.entries(x)) {
  key = key.toUpperCase();
}


console.log(x);

Live Demo

1 个答案:

答案 0 :(得分:4)

使用

key = key.toUpperCase();

重新分配变量几乎永远不会做任何事情(即使key是可重新分配的)-您需要显式地更改现有对象:

var obj = {
  name: "new name",
  age: 33
}

const x = {};

for (const [key, value] of Object.entries(obj)) {
  x[key.toUpperCase()] = value;
}
console.log(x);

您还可以使用reduce来避免x外部突变:

var obj = {
  name: "new name",
  age: 33
}

const x = Object.entries(obj).reduce((a, [key, value]) => {
  a[key.toUpperCase()] = value;
  return a;
}, {});
console.log(x);