检查数组中的重复项区分大小写 Javascript

Check for duplicates in array case-sensitive Javascript

我使用 UnderscoreJS 检查数组中是否存在重复项的解决方案:

function hasDups(arr) {
   return arr.length !== _.uniq(arr).length;
}

如果重复值相同,这会起作用,但如果一个是大写而另一个是小写呢?此 _.uniq 函数不会删除此类重复项。

你可以给 uniq 提供一个函数来转换元素:

function toLowerCase(s) {
    if (typeof(s) === 'string') {
        return s.toLowerCase();
    }

    return s;
}

function hasDups(arr) {
    return (arr.length !== _.uniq(arr, false, toLowerCase).length);
}

希望对您有所帮助。

参考:http://underscorejs.org/#uniq

你可能会在 ES6 中做这样的事情

var arr = ["Test", "test", "hello", "world"];
function checkDups(a) {
  b = Array.from(new Set(a.map(e => e.toLowerCase())));
  return a.length !== b.length;
}
console.log(checkDups(arr));