Существует функция, которая изменяет ключ "Certificate" на "Certificate_car". Есть ли способ улучшить функцию, используя напрямую метод assign для изменения массива? Является ли это возможным?
const arr = [{
"name": "BMW",
"price": "55 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mercedes-benz",
"price": "63 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mitsubishi",
"price": "93 000",
"constructor": "Bar John",
"door": "3",
"country": "Japan",
},
{
"name": "TOYOTA",
"price": "48 000",
"max_people": "7",
"country": "Japan",
"certificate": "yes"
},
{
"name": "Volkswagen",
"price": "36 000",
"constructor": "Pier Sun",
"country": "Germany",
"certificate": "no"
},
];
function certificateCar(arr) {
return arr.map(function(item) {
let itemCar = {};
let newItem = Object.assign({}, item);
Object.keys(newItem).forEach(item => {
itemCar[item.replace("certificate", "certificate_car")] = newItem[item]
});
return itemCar;
})
}
console.log(certificateCar(arr))
Вы можете использовать деструктуризацию и изменить желаемое имя ключа и оставить все как есть.
const arr = [{"name":"BMW","price":"55 000","country":"Germany","certificate":"yes"},{"name":"Mercedes-benz","price":"63 000","country":"Germany","certificate":"yes"},{"name":"Mitsubishi","price":"93 000","constructor":"Bar John","door":"3","country":"Japan",},{"name":"TOYOTA","price":"48 000", "max_people":"7","country":"Japan","certificate":"yes"},{"name":"Volkswagen","price":"36 000", "constructor":"Pier Sun","country":"Germany","certificate":"no"}, ];
const certificateCar = (arr) =>
arr.map(({certificate,...rest}) =>({...rest,certificate_car:certificate}))
console.log(certificateCar(arr))
const arr = [{
"name": "BMW",
"price": "55 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mercedes-benz",
"price": "63 000",
"country": "Germany",
"certificate": "yes"
},
{
"name": "Mitsubishi",
"price": "93 000",
"constructor": "Bar John",
"door": "3",
"country": "Japan",
},
{
"name": "TOYOTA",
"price": "48 000",
"max_people": "7",
"country": "Japan",
"certificate": "yes"
},
{
"name": "Volkswagen",
"price": "36 000",
"constructor": "Pier Sun",
"country": "Germany",
"certificate": "no"
},
];
function certificateCar(arr) {
return arr.map(function(item) {
let newItem = {}
delete Object.assign(newItem, item, {["certificate_car"]: item["certificate"] })["certificate"];
return newItem
})
}
console.log(certificateCar(arr))
если вы хотите сделать это с помощью метода assign, это будет лучше, чем замена имен ключей
Object.assign({},{...rest,certificate_car:certificate})
внутри карты