Как преобразовать ключи объекта в верхний регистр - PullRequest
1 голос
/ 24 апреля 2019

Я хотел бы преобразовать строчную клавишу в прописную. Но поиск моей попытки не работает.

каков будет правильный подход?

вот моя попытка:

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 Ответ

4 голосов
/ 24 апреля 2019

С

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