js判断数组中是否有重复元素

方法一:indexOf 方法

function isRepeat() {
        var ary = new Array("111", "22","22", "33", "111");
        for (var i = 0; i < ary.length; i++) {
            console.log(ary.indexOf(ary[i]));
            if(ary.indexOf(ary[i]) != i) {
                alert("数组中有重复元素:" + ary[i])
            }
        }
    }

indexOf方法返回元素在字符串中首次出现的位置,如果有重复元素,必定会出现多次相同的位置。如下:

方法二:数组排序,比较相邻元素

function isRepeat() {
        var ary = new Array("111", "22","22", "33", "111");
        var newary = ary.sort()
        for(var i = 0; i< newary.length; i++) {
            if(newary[i] == newary[i+1]) {
                alert("数组重复内容:" + newary[i]);
            }
        }
    }

方法三:通过哈希

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

原文地址:https://www.cnblogs.com/lyt0207/p/12354327.html

时间: 2024-12-19 02:54:08

js判断数组中是否有重复元素的相关文章

JS判断数组中是否有重复元素的方法

判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111","22","33","111"); var nary=ary.sort(); for(var i=0;i<ary.length;i++){ if (nary[i]==nary[i+1]){ alert("数组重复内容:"+na

哈希(6) - 判断数组中是否存在重复元素且距离在K之内

给定一个包含多个重复元素的未排序的数组.另外给定一个数字k,且k小于数组大小.判断数组中是否包含重复元素,且它们相隔的距离处于范围k之内. 例如: Input: k = 3, arr[] = {1, 2, 3, 4, 1, 2, 3, 4} Output: false 所有重复元素的距离>k. Input: k = 3, arr[] = {1, 2, 3, 1, 4, 5} Output: true 存在重复元素1,且距离为3(==k). Input: k = 3, arr[] = {1, 2,

JS 验证数组中是否包含重复元素

验证JS中是否包含重复元素,有重复返回true:否则返回false function isRepeat(data) { var hash = {}; for (var i in data) { if (hash[data[i]]) { return true; } // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可 hash[data[i]] = true; } return false; }

(笔试题)如何判断数组中是否存在重复元素

题目: 假设数组a有n个元素,元素的取值范围为1~n,如何判定数组是否存在重复元素? 思路: 方法1: 数组排序,比较相邻元素是否相等: 时间复杂度:O(nlogn),空间复杂度:O(1) 方法2: 使用bitmap(位图),定义长度为N/8的char数组,每个bit表示对应数字是否出现过.遍历数组,使用bitmap对数字是否出现过进行统计. 时间复杂度:O(n),空间复杂度:O(n) 方法3: 遍历数组,假设第i个位置的数字为j,则通过交换将j换到下标为j的位置上,直到所有数字都出现在自己对应

js判断数组中是否有重复值得三种方法

方法一: 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; } } 方法二: var ary = new Array("

js 判断数组中是否存在重复值

// 检测是否有重复值            function isRepeat(arr) { var isRepeat = false;                var hash = {}; for(var i in arr) { if (hash[arr[i]]) { isRepeat = arr[i];                        return isRepeat;                    } hash[arr[i]] = true;          

js判断数组中是不是有某个元素

function in_array(search,array){ for(var i in array){ if(array[i]==search){ return true; } } return false; } 原文地址:https://www.cnblogs.com/cjjjj/p/10453547.html

JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. 1 var ary = new Array("111","22","33","111"); 2 var s = ary.join(",")+","; 3 for(var i=0;i<ary.length;i++) { 4 if(s.

LeetCode:Contains Duplicate - 判断数组内是否有重复元素

1.题目名称 Contains Duplicate(判断数组内是否有重复元素) 2.题目地址 https://leetcode.com/problems/contains-duplicate/ 3.题目内容 英文:Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in