繁体   English   中英

如何在javascript中重命名数组中对象的属性?

[英]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 中nametitle的属性重命名为:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM