[英]Check if object attribute in an array is unique
我有这个数组:
[{category:'Cat A'}, {category:'Cat B'},{category:'Cat A }]
我想要一个如果数组中的两个或多个键(类别)相同则返回true的函数。
下划线有什么聪明的方法吗? 在文档中找不到任何内容。 还是我需要通过循环手动执行此操作?
您可以尝试uniq函数:
var arrayUniq = _.uniq(myArray, function(item) { return item.category; });
var isUniq = arrayUniq.length === myArray.length
作为一个新的JS程序员,我想仅使用JS解决此问题。 这是我的尝试,请建议我是否在这里遗漏了一些东西
var storeWithDup = [{category: "Cat A"}, {category: "Cat B"}, {category: "Cat A"}]; var storeWithoutDup = [{category: "Cat A"}, {category: "Cat B"}, {category: "Cat C"}];
var myComparator = function(value1, value2){
if(value1.hasOwnProperty("category") &&
value2.hasOwnProperty("category")){
if(value1.category < value2.category){
return -1;
} else if(value1.category > value2.category){
return 1;
} else {
return 0;
}
}
};
var arrayDuplicateChecker = function(inpArray){
for(var i = 1; i < inpArray.length; i++){
if(inpArray[i-1].category == inpArray[i].category){
return true;
}
}
return false;
};
var checkForDuplicateCat = function(inpStore){
// 1. Sort array
inpStore.sort(myComparator);
// 2. check for adjacent duplicates
return arrayDuplicateChecker(inpStore);
};
alert(checkForDuplicateCat(storeWithDup)); // True
alert(checkForDuplicateCat(storeWithoutDup)); // False
我的,我们制作东西有多复杂。
var array = [{category: 'Cat A'}, {category: 'Cat B'}, {category: 'Cat A }],
groups = _.groupBy(array, 'category');
duplicated = Object.keys(groups).filter(function(cat) {
return groups[cat].length>1;
});
的console.log(重复);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.