lodash uniq - 选择要保留在对象数组中的重复对象
lodash uniq - choose which duplicate object to keep in array of objects
有什么方法可以根据非空键来指定要保留的数组项。似乎 uniq 只保留第一次出现。
例如:
var fruits = [
{'fruit': 'apples', 'location': '', 'quality': 'bad'},
{'fruit': 'apples', 'location': 'kitchen', 'quality': 'good'},
{'fruit': 'pears', 'location': 'kitchen', 'quality': 'excellent'},
{'fruit': 'oranges', 'location': 'kitchen', 'quality': ''}
];
console.log(_.uniq(fruits, 'fruit'));
/* output is:
Object { fruit="apples", quality="bad", location=""}
Object { fruit="pears", location="kitchen", quality="excellent"}
Object { fruit="oranges", location="kitchen", quality=""}
*/
有没有办法告诉 lodash uniq 选择具有位置值的副本?它保留坏苹果而不是好苹果。
~~~
我的最终解决方案是在 uniq 中使用 sortByOrder
console.log(_.uniq(_.sortByOrder(fruits, ['fruit','location'], ['asc','desc']),'fruit'))
结果:
Object { fruit="apples", location="kitchen", quality="good"}
Object { fruit="oranges", location="kitchen", quality=""}
Object { fruit="pears", location="kitchen", quality="excellent"}
根据我在 https://lodash.com/docs#uniq 的文档中看到的内容,无法指定。可能你想要做的是 groupBy fruit 然后你可以选择你需要的质量。这取决于上下文以及您需要它的原因。
你能再解释一下你的问题吗?
有什么方法可以根据非空键来指定要保留的数组项。似乎 uniq 只保留第一次出现。
例如:
var fruits = [
{'fruit': 'apples', 'location': '', 'quality': 'bad'},
{'fruit': 'apples', 'location': 'kitchen', 'quality': 'good'},
{'fruit': 'pears', 'location': 'kitchen', 'quality': 'excellent'},
{'fruit': 'oranges', 'location': 'kitchen', 'quality': ''}
];
console.log(_.uniq(fruits, 'fruit'));
/* output is:
Object { fruit="apples", quality="bad", location=""}
Object { fruit="pears", location="kitchen", quality="excellent"}
Object { fruit="oranges", location="kitchen", quality=""}
*/
有没有办法告诉 lodash uniq 选择具有位置值的副本?它保留坏苹果而不是好苹果。
~~~
我的最终解决方案是在 uniq 中使用 sortByOrder
console.log(_.uniq(_.sortByOrder(fruits, ['fruit','location'], ['asc','desc']),'fruit'))
结果:
Object { fruit="apples", location="kitchen", quality="good"}
Object { fruit="oranges", location="kitchen", quality=""}
Object { fruit="pears", location="kitchen", quality="excellent"}
根据我在 https://lodash.com/docs#uniq 的文档中看到的内容,无法指定。可能你想要做的是 groupBy fruit 然后你可以选择你需要的质量。这取决于上下文以及您需要它的原因。
你能再解释一下你的问题吗?