Javascript 根据2键从数组中删除重复对象
我有这样的对象数组,我想根据2键删除重复项, 在我的数据中,我想删除具有相同Javascript 根据2键从数组中删除重复对象,javascript,ecmascript-6,ecmascript-5,ecmascript-2016,Javascript,Ecmascript 6,Ecmascript 5,Ecmascript 2016,我有这样的对象数组,我想根据2键删除重复项, 在我的数据中,我想删除具有相同房间id和mdate的项目, 在下面的代码中,对象4和5具有相同的room_id和mdate,所以我应该删除其中一个,有解决方案吗 我有这个功能删除重复的对象,但它可以检查一个关键点 function getUnique(arr, comp) { arr.map() const unique = arr .map(e => e[comp]) // store th
房间id
和mdate
的项目,
在下面的代码中,对象4和5具有相同的room_id和mdate,所以我应该删除其中一个,有解决方案吗
我有这个功能删除重复的对象,但它可以检查一个关键点
function getUnique(arr, comp) {
arr.map()
const unique = arr
.map(e => e[comp])
// store the keys of the unique objects
.map((e, i, final) => final.indexOf(e) === i && i)
// eliminate the dead keys & store unique objects
.filter(e => arr[e])
.map(e => arr[e]);
return unique;
}
arr = [{
cond: 2
extra_fee: 20000
kind: ""
mdate: "2019-12-15"
price: "100000"
room_id: 1
},
{
cond: 2
extra_fee: 20000
kind: ""
mdate: "2019-12-10"
price: "100000"
room_id: 1
},
{
cond: 2
extra_fee: 20000
kind: "" object 3 <-------------- is same - have same mdate and room_id
mdate: "2019-12-10"
price: "100000"
room_id: 2
},
{
cond: 2
extra_fee: 20000
kind: ""
mdate: "2019-12-10"
price: "100000"
room_id: 2 object 4 <-------------- are same - have same mdate and room_id
},
{
cond: 2
extra_fee: 20000
kind: ""
mdate: "2019-12-10"
price: "100000"
room_id: 7
}
]
函数getUnique(arr、comp){
arr.map()
const unique=arr
.map(e=>e[comp])
//存储唯一对象的键
.map((e,i,final)=>final.indexOf(e)==i&&i)
//消除死键并存储唯一对象
.filter(e=>arr[e])
.map(e=>arr[e]);
返回唯一值;
}
arr=[{
条件:2
额外费用:20000
种类:“
日期:“2019-12-15”
价格:“100000”
房间号:1
},
{
条件:2
额外费用:20000
种类:“
日期:“2019-12-10”
价格:“100000”
房间号:1
},
{
条件:2
额外费用:20000
种类:“对象3请尝试以下操作:
函数getUnique(arr、comp){
设tmpObj={};
let unique=[];
for(设i=0;i让arr=[{
条件:2,
额外费用:20000,
种类:“,
日期:“2019-12-15”,
价格:“100000”,
房间号:1
},
{
条件:2,
额外费用:20000,
种类:“,
日期:“2019-12-10”,
价格:“100000”,
房间号:1
},
{
条件:2,
额外费用:20000,
种类:“,
日期:“2019-12-10”,
价格:“100000”,
房间号:2
},
{
条件:2,
额外费用:20000,
种类:“,
日期:“2019-12-10”,
价格:“100000”,
房间号:2
},
{
条件:2,
额外费用:20000,
种类:“,
日期:“2019-12-10”,
价格:“100000”,
房间号:7
}
]
无重复项的常量数组=arr.filter((v,i,a)=>a.findIndex(t=>(t.room\u id==v.room\u id&&t.mdate==v.mdate))==i)
console.log(数组不重复)
它删除具有相同房间id的所有元素如果mdate
和房间id