如何将对象键转换为大写

use*_*080 2 javascript object typescript 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);
Run Code Online (Sandbox Code Playgroud)

现场演示

Cer*_*nce 6

key = key.toUpperCase();
Run Code Online (Sandbox Code Playgroud)

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

key = key.toUpperCase();
Run Code Online (Sandbox Code Playgroud)

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

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

const x = {};

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