我需要检查一个JavaScript数组,看看是否有任何重复的值.最简单的方法是什么?我只需要找到重复的值是什么 - 我实际上并不需要它们的索引或重复它们的次数.
我知道我可以遍历数组并检查匹配的所有其他值,但似乎应该有一个更简单的方法.有任何想法吗?谢谢!
国家描述jQuery.unique():
在适当的位置对DOM元素数组进行排序,并删除重复项.请注意,这仅适用于DOM元素的数组,而不适用于字符串或数字.
考虑到描述,有人可以解释为什么下面的代码有效吗?
<div></div>
<div></div>?
Run Code Online (Sandbox Code Playgroud)
var arr = ['foo', 'bar', 'bar'];
$.each(arr, function(i, value){
$('div').eq(0).append(value + ' ');
});
$.each($.unique(arr), function(i, value){
$('div').eq(1).append(value + ' ');
});
?
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:可能解决方案:
function unique(arr) {
var i,
len = arr.length,
out = [],
obj = { };
for (i = 0; i < len; i++) {
obj[arr[i]] = 0;
}
for (i in obj) {
out.push(i);
}
return out;
};
Run Code Online (Sandbox Code Playgroud)