js如何修改数组对象里的属性名?

场景是这样的:
得到后端返回的数据,有个字段是id。前端有个组件,传值过去支持的是uid,所以我想要把id改为uid

试了这样写没变化,问题出在哪了呢

let arr = [
    {
        id:1,
        name:"mincoo"
    },
    {
        id:2,
        name:"nxm"
    }
];
let newArr = arr.map(o=>{
    for(let key in o){
        if(key == 'id'){
            key = 'uid';
        }
    }
    return o;
});
console.log(newArr)

最佳答案

因为字符串的不可变性

这样改吧:

let newArr = arr.map(o => {
    return Object.assign(o, { uid: o.id });
});

方法不唯一。