Javascript 如果项目具有相同的键值,则从对象数组中删除项目
我正在努力使这件事工作。我有这样一个对象数组:Javascript 如果项目具有相同的键值,则从对象数组中删除项目,javascript,arrays,object,filter,reduce,Javascript,Arrays,Object,Filter,Reduce,我正在努力使这件事工作。我有这样一个对象数组: 让我的城市=[ { 价值:“巴塞罗那”, 代码:02342837492482347 }, { 价值观:“罗马”, 代码:28282716171819 }, { 价值:“巴塞罗那”, 代码:67246726482 }, { 价值:“巴黎”, 代码:12319808080 }, ] 我想删除键值相同但保留第一个的所有项目。所以我会得到这样的结果: 让我的城市=[ { 价值:“巴塞罗那”, 代码:02342837492482347 }, { 价值观
让我的城市=[
{
价值:“巴塞罗那”,
代码:02342837492482347
},
{
价值观:“罗马”,
代码:28282716171819
},
{
价值:“巴塞罗那”,
代码:67246726482
},
{
价值:“巴黎”,
代码:12319808080
},
]
我想删除键值
相同但保留第一个的所有项目。所以我会得到这样的结果:
让我的城市=[
{
价值:“巴塞罗那”,
代码:02342837492482347
},
{
价值观:“罗马”,
代码:28282716171819
},
{
价值:“巴黎”,
代码:12319808080
},
]
你想到什么解决办法了吗?
谢谢 我有两个
首先,您可以临时使用一个对象,该对象的值为城市键,code
为值。然后使用forEach()
在myCities
上迭代并填充对象。完成后,使用object.keys(tempObj.map()
将该对象映射回数组
第二个想法是直接使用a并从myCities
创建第二个数组。它的第三个参数包含输入数组(myCities
)。但即使在这里,你也需要一些簿记……你可以试试
让我的城市=[
{
价值:“巴塞罗那”,
代码:02342837492482347
},
{
价值观:“罗马”,
代码:28282716171819
},
{
价值:“巴塞罗那”,
代码:67246726482
},
{
价值:“巴黎”,
代码:12319808080
},
]
log(q.uniq(myCities,x=>x.value))代码>
让我的城市=[
{
价值:“巴塞罗那”,
代码:02342837492482347
},
{
价值观:“罗马”,
代码:28282716171819
},
{
价值:“巴塞罗那”,
代码:67246726482
},
{
价值:“巴黎”,
代码:12319808080
},
]
功能唯一键(objArr){
设tmp={};
for(设i=0;ivar myCities=[
{
价值:“巴塞罗那”,
代码:02342837492482347
},
{
价值观:“罗马”,
代码:28282716171819
},
{
价值:“巴塞罗那”,
代码:67246726482
},
{
价值:“巴黎”,
代码:12319808080
},
];
var-arr=[];var-res=[];
对于(var i=0;我查看了一下,请显示您迄今为止所做的任何不起作用的尝试。您应该已经做了一次。嘿@Marc89,这方面有什么更新吗?我的答案有什么问题吗?拜托,我真的不明白。
var myCities = [
{
value: 'Barcelona',
code: 02342837492482347
},
{
value: 'Rome',
code: 28282716171819
},
{
value: 'Barcelona',
code: 67246726482
},
{
value: 'Paris',
code: 12319808080
},
];
var arr = []; var res = [];
for(var i = 0; i<myCities.length;i++){
if(!arr.includes(myCities[i].value)){
res.push(myCities[i]);
arr.push(myCities[i].value);
}
}