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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
个人比较习惯这样,
缺点是会保留就的属性,优点是比较省心
新增一个uid = id, 然后把id delete了
这种要求,除了增加内存消耗外,没有特别的意义,其实不建议进行特别处理。
你的代码问题在于没有理解js对象中属性名一旦确定,就不可删除,而且字符串在js中其实是不可变的。
因为字符串的不可变性。
这样改吧:
方法不唯一。
新增一个UID字段就可以了!只要有这个字段就可以用了
arr.map(({id, name}) => (({uid: id, name})))