猿问

JS分配方法

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


ITMISS
浏览 182回答 2
2回答

慕斯王

您可以使用解构并更改所需的密钥名称,并保持其余名称不变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方法做到这一点,那将比替换键名更好
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答