如何判断数组中是否有相同的元素呢?
先来讲下思路:
现实中,要判断某个东西是否相同,那就意味着这东西至少是有2个或更多,
否则单个东西没法比较。
数组也是一样,要判断一个数组中是否有相同的元素,
最简单的方法,
就是把数组复制一份,然后二个数组比较,这种虽然从效率上差些,
但胜在容易理解。
先上代码:
function isCheck(arr){
var b = arr.join(',');
for(var i=0;i<b.length;i++){
if(b.replace(arr[i],"").indexOf(arr[i]>-1)){
return true;
}
}
return false;
}
var arrs = [1,3,4,5,2];
console.log( isCheck(arrs) )
看不明白不要紧,我大概讲下,具体怎么比较的。。
就是把var arr=[1,2,3]再复制一个var b=[1,2,3];
然后for循环,
从0开始,当i=0的时候,
把arr数组的第0个值,replace替换为"",
然后用indexOf查找b数组的第[i]个值,
如果>-1,就是有重复,否则就是没有重复。
其实还是很简单的哈,大家多练习下,就明白啦。
今天这个例子,只能判断是否有重复,只能返回true或是false
相关链接:常用技巧之JS去除重复项