#javascript #typescript #object #ecmascript-6
#javascript #машинописный текст #объект #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);
Ответ №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);
Комментарии:
1. Как насчет массива объектов, подобных :
var obj = [{ name:"new name", age:33 }, { name:"new ccc", age:34 }]
2. Используйте
.map
, и пусть функция mapper принимает элемент, который повторяется, какobj
, и возвращаетx