有一个函数可以将密钥“ 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))
答案 0 :(得分:3)
您可以使用解构并更改所需的密钥名称,并保持其余名称不变
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))
答案 1 :(得分:0)
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方法来执行此操作,那将比替换键名更好