Javascript 检查数组中的对象属性是否唯一

Javascript 检查数组中的对象属性是否唯一,javascript,underscore.js,Javascript,Underscore.js,我有这个阵列: [{category:'Cat A'}, {category:'Cat B'},{category:'Cat A }] 如果数组中的两个或多个键(类别)相同,我需要一个返回true的函数 有什么聪明的方法可以用下划线来做这件事吗?在文档中找不到任何内容。或者我需要用循环手动执行此操作吗?您可以尝试以下功能: var arrayUniq = _.uniq(myArray, function(item) { return item.category; }); var isUniq

我有这个阵列:

[{category:'Cat A'}, {category:'Cat B'},{category:'Cat A }]
如果数组中的两个或多个键(类别)相同,我需要一个返回true的函数

有什么聪明的方法可以用下划线来做这件事吗?在文档中找不到任何内容。或者我需要用循环手动执行此操作吗?

您可以尝试以下功能:

var arrayUniq = _.uniq(myArray, function(item) { return item.category; });
var isUniq = arrayUniq.length === myArray.length

作为一名新的JS程序员,我想只使用JS解决这个问题。这是我的尝试,如果我遗漏了什么,请建议

给定对象数组(或存储)
var-storeWithDup=[{category:“cata”},{category:“catb”},{category:“cata”}];
var storeWithoutDup=[{category:“cata”},{category:“catb”},{category:“catc”}]

1.使用自定义比较函数对对象数组排序 结果
链接到

我的,我们把事情弄得多么复杂

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; 
    });
控制台日志(重复)

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; 
    });