我有这个数组:
[{category:'Cat A'}, {category:'Cat B'},{category:'Cat A }]
如果数组中的两个或多个键(类别)相同,我想要一个返回true的函数。
使用下划线有什么聪明的方法吗?在文档中找不到任何内容。或者我需要手动循环吗?
答案 0 :(得分:1)
您可以尝试uniq功能:
var arrayUniq = _.uniq(myArray, function(item) { return item.category; });
var isUniq = arrayUniq.length === myArray.length
答案 1 :(得分:0)
作为一名新的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
答案 2 :(得分:0)
我的,我们制作的事情有多复杂。
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(重复);