[英]How to rename properties of objects in array in javascript?
我有这个 javascript 对象:
var arr = [{id:'124',name:'qqq'},
{id:'589',name:'www'},
{id:'45',name:'eee'},
{id:'567',name:'rrr'}]
我需要将 arr1 中name
为title
的属性重命名为:
var arr = [{id:'124',title:'qqq'},
{id:'589',title:'www'},
{id:'45',title:'eee'},
{id:'567',title:'rrr'}]
用 Javascript 实现它的优雅方式是什么?
使用delete
从对象中删除属性。 使用obj['newProperty']
将newProperty
分配给一个对象。
var arr = [{id:'124',name:'qqq'}, {id:'589',name:'www'}, {id:'45',name:'eee'}, {id:'567',name:'rrr'}]; arr.forEach( function(data) { data['title'] = data['name']; delete data['name']; }); console.log(arr);
你也可以使用array#map
const arr = [{ id: '124', name: 'qqq' }, { id: '589', name: 'www' }, { id: '45', name: 'eee' }, { id: '567', name: 'rrr' } ], result = arr.map(({name, ...rest}) => ({...rest, title: name})); console.log(result);
使用地图:
var arr = [{ id: '124', name: 'qqq' }, { id: '589', name: 'www' }, { id: '45', name: 'eee' }, { id: '567', name: 'rrr' } ] arr = arr.map((e) => { return { id: e.id, title: e.name } }); console.log(arr);
arr.map(e => { return { id: e.id, title: e.name }});
无法更改属性的名称,但可以添加一个新的并删除旧的,我也从某个地方获得了代码,但不记得确切的来源
function changeKey(originalKey, newKey, arr)
{
var newArr = [];
for(var i = 0; i < arr.length; i++)
{
var obj = arr[i];
obj[newKey] = obj[originalKey];
delete(obj[originalKey]);
newArr.push(obj);
}
return newArr;
}
以下是删除键和值并分配给新键的方法:
var arr = [{id:'124',name:'qqq'}, {id:'589',name:'www'}, {id:'45',name:'eee'}, {id:'567',name:'rrr'}] arr.forEach(function(o) { Object.defineProperty(o, 'title', Object.getOwnPropertyDescriptor(o, 'name')); delete o['name']; }); console.log(arr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.