【问题标题】:Delete and add attributes with array.map and the spread operator使用 array.map 和扩展运算符删除和添加属性
【发布时间】:2018-07-25 11:12:35
【问题描述】:

我正在尝试破坏从 api 返回的数据。我返回了一组对象。我想删除密码字段,然后添加几个附加字段。我想使用扩展运算符,但我的过程感觉有点笨拙。

myArray.map( item => {
    const newItem = { ...item };
    delete newItem.password;
    newItem.saved = true;
    return newItem;
});

有更好的方法吗?

【问题讨论】:

    标签: ecmascript-2016


    【解决方案1】:

    给定一个对象数组 -

    const myArrayOfObjects = [
        {id: 1, keyToDelete: 'nonsense'},
        {id: 2, keyToDelete: 'rubbish'}
    ];
    

    删除属性keyToDelete,并添加一个值为"someVar"的新键newKey

    myArrayOfObjects.map(({ keyToDelete, ...item}) => { ...item, newKey:'someVar'});
    

    将数组更新为

    [
        {id: 1, newKey:'someVar'},
        {id: 2, newKey:'someVar'}
    ]
    

    有关删除方法的更多信息,请参阅this great post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2018-04-07
      • 2017-12-20
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 2017-06-12
      相关资源
      最近更新 更多