【问题标题】:How to change property name in array of objects in Javascript?如何在Javascript中更改对象数组中的属性名称?
【发布时间】:2021-12-27 12:32:32
【问题描述】:

我有一个对象数组 -

const obj = [{name:'josh', city:'Sydney'},{name:'alice', city:'York'}]

我想将“城市”属性更改为“城镇”。如何对数组中每个对象的属性进行这种更改?

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    使用Array#map:

    const arr = [ { name: 'josh', city: 'Sydney' }, { name: 'alice', city: 'York' } ];
    
    const res = arr.map(({ city, ...e }) => ({ ...e, town: city }));
    
    console.log(res);

    使用Array#forEach

    const arr = [ { name: 'josh', city: 'Sydney' }, { name: 'alice', city: 'York' } ];
    
    arr.forEach(e => {
      e.town = e.city;
      delete e.city;
    });
    
    console.log(arr);

    【讨论】:

    • 有什么办法可以就地修改密钥..??我的意思是不创建另一个数组...??
    • @p4avinash 无法更改属性名称,但您可以添加具有相同值的新属性和delete旧属性。
    • @p4avinash 我用另一种方法更新了答案
    【解决方案2】:

    你不能直接这样做,但你可以这样做:

    const obj = [{name:'josh', city:'Sydney'},{name:'alice', city:'York'}]
    for (let element of obj){
      element.town = element.city;
      delete element.city;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2020-06-22
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多