JS判断一个数组中是否有重复值的三种方法

如题所述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>判断数组是否有重复值的三种方法</title>
</head>

<body>
    <script>
        var text = [1, 2, 3, 4, 5, 6, 7, 5, 34, 22, 1, 2]; // 需要判断的数组
        var Result = []; // 存放结果
        for (var i = 0; i < text.length; i++) {
            for (var n = 0; n < text.length; n++) {
                if (text[i] == text[n] && i !== n && Result.indexOf(text[i]) == -1) {
                    Result.push(text[i]);
                }
            }
        }
        console.log("第一种", Result);

        Result = [];
        var textBox = []; // 新的空数组--容器
        for (var i = 0; i < text.length; i++) {
            if (textBox[text[i]] == 1) {
                Result.push(text[i]);
            } else {
                textBox[text[i]] = 1;
            }
        }
        console.log("第二种", Result);


        Result = [];
        function action(arr) {
            if (arr.length == 0) {
                console.log("第三种", Result);
            } else {
                var current = arr.shift();
                if (arr.indexOf(current) !== -1) {
                    Result.push(current);
                }
                action(arr);
            }
        }
        action(text);

        
    </script>
</body>

</html>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-27

function isRepeat1(arr){
var s = arr.join(",")+",";  
  
for(var i=0;i<arr.length;i++) {  
  
if(s.replace(arr[i]+",","").indexOf(arr[i]+",")>-1) {  
  
alert("数组中有重复元素:" + arr[i]);  
  
break;  
  
}  
  
}  
}

function isRepeat2(arr){
var nary=arr.sort();  
  
for(var i=0;i<arr.length;i++){  
  
if (nary[i]==nary[i+1]){  
  
alert("数组重复内容:"+nary[i]);  
  
}  
  
}  
}


function isRepeat3(arr){  
  
var hash = {};  
  
for(var i in arr) {  
  
if(hash[arr[i]])  
  
return true;  
  
hash[arr[i]] = true;  
  
}  
  
return false;  
  
}

本回答被提问者采纳
第2个回答  2016-12-27
ar ary = new Array("111","22","33","111");

var s = ary.join(",")+",";

for(var i=0;i<ary.length;i++) {

if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) {

alert("数组中有重复元素:" + ary[i]);

break;外语屋

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网