JS分配方法

时间:2019-04-13 15:51:53

标签: javascript arrays methods

有一个函数可以将密钥“ 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))

2 个答案:

答案 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方法来执行此操作,那将比替换键名更好