网站搜索

javascript - 如何将对象键转换为大写


我想把小写键转换为大写键。但发现我的尝试不管用。

正确的方法是什么?

这是我的尝试:

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);

实时演示

答案#1

与

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);