我有一个看起来像下面的数组
var nestedArray = [
{ id: 1, filter: { type: "nestedArray", name: "5" } },
{ id: 2, filter: { type: "nestedArray1", name: "6" } },
{ id: 3, filter: { type: "nestedArray", name: "5" } }
];
现在这里有一个重复的对象,我只想使用 Lodash 方法识别重复的对象。任何帮助表示赞赏。
已经尝试过地图,过滤选项,但需要 Lodash 方法中的某些内容。
答案 0 :(得分:1)
您可以对属性使用拒绝。
var myArray = [
{
"id": 1,
"filter": {
"type": "nestedArray",
"name": "5"
}
},
{
"id": 2,
"filter": {
"type": "nestedArray1",
"name": "6"
}
},
{
"id": 3,
"filter": {
"type": "nestedArray",
"name": "5"
}
}
];
var result = _.reject(myArray, ['filter.name', '5']);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
答案 1 :(得分:1)
所以您想按过滤键中的值拒绝重复的值吗?
_.uniqWith(nestedArray, (x, y) => _.isEqual(x.filter, y.filter), myArray)
如果您可以灵活地使用Ramda,它可能会更加简洁,因为每个函数都是自动执行的
const rejectDuplicateFilter = R.uniqWith(R.eqProps('filter'));
rejectDuplicateFilter(myArray)