Как изменить значения объекта?
У меня такой вопрос: есть объект, и я хочу изменить его значения, например, преобразовать их в нижний регистр. Я написал код, но мне кажется он слишком объемный:
let car = {
mark: 'Pontiac',
model: 'GTO Judge',
year: '1969',
color: 'black',
origin: 'USA'
}
console.log(car);
let arr = Object.entries(car).flat();
let val = []
let keys = []
for (let i = 0; i < arr.length; i++) {
if (i % 2 != 0) {
val.push(arr[i])
} else {
keys.push(arr[i])
}
}
let low = val.toString().toLowerCase().split(',');
let new_arr = [];
for (let j = 0; j < keys.length; j++) {
new_arr.push([keys[j], low[j]])
}
let new_car = Object.fromEntries(new_arr)
console.log(new_car);
Есть ли более короткое и изящное решение подобной задачи?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Вы как будто задались целью пойти самым сложным путём) Кажется, достаточно так:
let car = {
mark: 'Pontiac',
model: 'GTO Judge',
year: '1969',
color: 'black',
origin: 'USA'
};
for (const key of Object.keys(car)) {
car[key] = car[key].toLowerCase();
}
console.log(car);
Или так, если вам покажется читабельнее:
let car = {
mark: 'Pontiac',
model: 'GTO Judge',
year: '1969',
color: 'black',
origin: 'USA'
};
for (const [key, value] of Object.entries(car)) {
car[key] = value.toLowerCase();
}
console.log(car);
Если же нужно создать копию, можно так:
let car = {
mark: 'Pontiac',
model: 'GTO Judge',
year: '1969',
color: 'black',
origin: 'USA'
};
let new_car = Object.fromEntries(
Object.entries(car).map(([key, value]) => [key, value.toLowerCase()])
);
console.log(new_car);