1.需要修改的数据
const arr = [
{ id: 1, name: "wyy", age: 22, sex: "girl" },
{ id: 2, name: "lm", age: 12, sex: "boy" },
{ id: 3, name: "xh", age: 20, sex: "girl" },
];
2.使用forEach和for循环实现
function changeKey(arr, names) {
let newArr = [];
arr.forEach((item, index) => {
let newObj = {};
for (var i = 0; i < names.length; i++) {
newObj[names[i]] = item[Object.keys(item)[i]]
}
newArr.push(newObj);
})
return newArr;
}
console.log(changeKey(arr, ["编号", "姓名", "年龄", "性别"]))
前些天学了es6新增的两个对象属性,今天就用上了。
3.使用Object.entries()和Object.fromEntries()方法实现
修改全部属性名
function changeName(arr, names) {
const newArr = [];
arr.forEach((item) => {
const objL = Object.entries(item);
objL.forEach((ite, i) => {
if (names[i] === undefined) return;
ite[0] = names[i];
});
item = Object.fromEntries(objL);
newArr.push(item);
});
return newArr;
}
console.log(changeName(arr, ["编号", "姓名", "年龄", "性别"]));
修改部分属性名
const arr = [
{ id: 1, name: "wyy", age: 22, sex: "girl" },
{ id: 2, name: "lm", age: 12, sex: "boy" },
{ id: 3, name: "xh", age: 20, sex: "girl" },
];
function changeName(arr, names) {
const newArr = [];
arr.forEach((item) => {
const objL = Object.entries(item);
objL.forEach((ite, i) => {
if (names[i] === undefined) return;
ite[0] = names[i];
});
item = Object.fromEntries(objL);
newArr.push(item);
});
return newArr;
}
console.log(changeName(arr, ["编号", "姓名"]));
注意:names的顺序和对象中属性的顺序要一样。
可学习