我有一个对象数组,我想根据“documentTypeId”和“flag”值删除重复的对象。在下面的对象中,我想删除具有'documentTypeId'值相同且标志值为false的对象。我试过了,但没有找到合适的过滤器。请找到下面的代码。
const test = [{
"id": 100,
"documentTypeId": 3,
"docName": "test",
"flag": false
}, {
"id": 31184688089,
"documentTypeId": 1,
"docName": "test2",
"flag": true
},
{
"documentTypeId": 3,
"docName": "test3",
"flag": true,
"active": true
}
]
const res = test.filter((value, index, self) =>
index === self.findIndex((t) => (
t.documentTypeId === value.documentTypeId && t.flag == false
))
)
console.log(res);
2条答案
按热度按时间11dmarpk1#
我不知道你的目标是什么。你可能问错问题了。我想你可能会看到的是从一个基于标志
documentTypeId
和flag
的数组中删除重复项,另一个条件是,如果有重复项,你希望优先选择具有flag=true
的文档。您可以尝试将所有
documentTypeId
排列在一个数组中,并以boolean作为第一个元素对它们进行排序,然后在排序后选择所有documentTypeId
的第一个元素。比如下面如果这不是你的问题,那么你的downvoting和unmarking答案不是StackOverflow的方法。人们在这里帮助你,而不是免费工作。这是我最后一次尝试,因为我不像Stackoverflow的传奇人物那样相当谦虚:)
aydmsdu92#