Javascript 从对象数组中删除所有相等的对象,包括比较的对象

Javascript 从对象数组中删除所有相等的对象,包括比较的对象,javascript,arrays,Javascript,Arrays,我只是想弄清楚如何从一个对象数组中删除所有类型相同的元素,可能会很奇怪,但假设我有一个数组: arrayX=[ {id: 5, turnName: "10_00_am"} {id: 5, turnName: "10_00_am"} {id: 6, turnName: "11_00_am"} {id: 6, turnName: "11_00_am"} {id: 7, turnName: "12_00_am&q

我只是想弄清楚如何从一个对象数组中删除所有类型相同的元素,可能会很奇怪,但假设我有一个数组:

arrayX=[
{id: 5, turnName: "10_00_am"}
{id: 5, turnName: "10_00_am"}
{id: 6, turnName: "11_00_am"}
{id: 6, turnName: "11_00_am"}
{id: 7, turnName: "12_00_am"}
{id: 8, turnName: "01_00_pm"}
]
因此,根据这个和我想做的,结果可能是这样的

arrayResult=[

{id: 7, turnName: "12_00_am"}
{id: 8, turnName: "01_00_pm"}
]
我的意思是,不仅要删除重复的,还要删除那些与那些重复的进行比较的

我尝试过几种方法,包括过滤器或集合,但所有这些结果总是让我感到困惑 具有唯一值的对象数组(这是可以的,但在本例中不适用于此特定要求)

我最近尝试的方法是:

arrayResult = arrayX.filter((elem, index, self) => self.findIndex(
    (t) => {return (t.id === elem.id && t.turnName === elem.turnName}) === index)
关于如何解决这个问题有什么帮助吗
谢谢

您可以这样做:

var arrayX=[
{id:5,turnName:“上午10点”},
{id:5,turnName:“上午10点”},
{id:6,turnName:“上午11点”},
{id:6,turnName:“上午11点”},
{id:7,turnName:“上午12点”},
{id:8,turnName:“01_00_pm”}
]
var newArray=arrayX.map(i=>JSON.stringify(i));
var res=newArray.filter((元素,索引)=>{
if(newArray.indexOf(elem)==newArray.lastIndexOf(elem)){
返回元素
}
});
var finalResult=res.map(i=>JSON.parse(i));
console.log(finalResult)