JavaScript对象。更改数组中对象的键名称
我有一个类似以下示例的对象数组:JavaScript对象。更改数组中对象的键名称,javascript,arrays,object,Javascript,Arrays,Object,我有一个类似以下示例的对象数组: [ { id: 44, message: 'abcd', name: 'example1' }, { id: 44, message: 'efgh', name: 'example2' }, { id: 45, message: 'ijkl', name: 'example3' }, { id: 45, message: 'mnop', name: 'example4' }, ] 如您所见,id值是重复的。现在,我只需要在第二个重复对象处将键名
[
{ id: 44, message: 'abcd', name: 'example1' },
{ id: 44, message: 'efgh', name: 'example2' },
{ id: 45, message: 'ijkl', name: 'example3' },
{ id: 45, message: 'mnop', name: 'example4' },
]
如您所见,id值是重复的。现在,我只需要在第二个重复对象处将键名“name”更改为“lastName”:
[
{ id: 44, message: 'abcd', name: 'example1' },
{ id: 44, message: 'efgh', lastName: 'example2' },
{ id: 45, message: 'ijkl', name: 'example3' },
{ id: 45, message: 'mnop', lastName: 'example4' },
]
您可以保持
last id
跟踪,并修改映射循环中的返回对象
对于未排序的列表:
let数据=[
{id:44,消息:“abcd”,名称:“example1”},
{id:44,信息:“efgh”,名称:“example2”},
{id:45,消息:“ijkl”,名称:“example3”},
{id:45,消息:“mnop”,名称:“example4”},
];
设idMap=newset();
const result=data.map((项)=>{
if(idMap.has(item.id)){
常量{name:lastName,…rest}=item;
item={…rest,lastName};
}否则{
添加(item.id);
}
退货项目;
});
控制台日志(结果)
您可以保存每个项目的id
s,如果已经访问了具有此id的项目,则可以将密钥从name
重命名为lastName
let list=[
{id:44,消息:'abcd',名称:'example1'},
{id:44,消息:'efgh',名称:'example2'},
{id:45,消息:'ijkl',名称:'example3'},
{id:45,消息:'mnop',名称:'example4'},
];
让我们检查=[];
列表.forEach(功能(项){
如果(勾选。包括(项目id)){
项目['lastName']=项目['name'];
删除项目[‘名称’];
}否则{
选中。推送(项目id);
}
});
console.log(列表)
您尝试了什么??欢迎来到Stackoverflow。到目前为止,您尝试了什么来解决这个问题?你在哪里被卡住了?我想这已经得到了回答,Tranks,我在一个变量中存储了密钥名,但是当我搜索重复id的对象时,我被卡住了。