Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据2键从数组中删除重复对象_Javascript_Ecmascript 6_Ecmascript 5_Ecmascript 2016 - Fatal编程技术网

Javascript 根据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

我有这样的对象数组,我想根据2键删除重复项, 在我的数据中,我想删除具有相同
房间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;ilog(getUnique(arr,“room_id”);这将删除重复项

让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