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

JavaScript014

JS判断数组中是否有重复值得三种实用方法,第1张

//先排序,相邻两个元素相同即为重复

            Array.prototype.isRepeat1 = function() {

                this.sort()

                var result = [this[0]]

                for (var i = 1 i < this.length i++) {

                    if (this[i] == result[result.length - 1]) {

                        return true

                    }

                }

                return false

            }

            

            //循环,把元素放入map中,如果在map中能找到就说明重复

            Array.prototype.isRepeat2 = function() {

                var map = {}, result = []

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

                    if (map[this[i]]) {

                        return true

                    }

                    map[this[i]] = true

                }

                return false

            }

            

            //用indexOf/lastIndexOf返回的位置比较判断是否重复

            Array.prototype.isRepeat3 = function() {

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

                    if (this.indexOf(this[i]) != i){

                        return true

                    }

                }

                return false

            }

var ary = new Array("111", "22", "33", "111","33")

            var nary = ary.sort()

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

                if (nary[i] == nary[i + 1]) {

                    alert("数组重复内容:" + nary[i])

                }

            }