检查数组中的重复项区分大小写 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);
}
希望对您有所帮助。
你可能会在 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));
我使用 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);
}
希望对您有所帮助。
你可能会在 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));