修改object的属性名(es6新增方法实现)

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的顺序和对象中属性的顺序要一样。

可学习

JavaScript中对象的常用方法(es6-es12新增)_wyy爱学习的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_57399180/article/details/125224937