js怎么判断某个数组里面是否包含这个元素?

JavaScript015

js怎么判断某个数组里面是否包含这个元素?,第1张

在C#语法中判断集合是否包含某个元素可以使用Contains方法,但是类似的问题在javascript中要怎么处理呢,js中没有Contains方法。

我们可以利用js的原型扩展来封装一个我们自己的Contains方法。

<script type="text/javascript">

$(function () {

Array.prototype.contains = function (element) { //利用Array的原型prototype点出一个我想要封装的方法名contains

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

if (this[i] == element) { //如果数组中某个元素和你想要测试的元素对象element相等,则证明数组中包含这个元素,返回true

return true

}

}

}

//用一个例子来验证一些我们封装的方法

var $subCategoryID = $("#hidSubCategory").val()

var $subCategoryIDs = new Array()//构造一个数组对象

$subCategoryIDs = $subCategoryID.split(",")//为数组赋值

$("input[type=radio]").each(function () {

if ($subCategoryIDs.contains($(this).attr("id"))) { //利用contains方法判断数组中是否含有$(this).attr("id")

$(this).attr("checked", true)

}

})

})

</script>

<!--封装集合类-->

//我们的集合里面不允许有重复的元素

    function Set(){

//    属性

        this.items={}

//    add方法

        Set.prototype.add=value=>{

//判断当前集合是否包含了该元素

            if (this.has(value))return false

            //将元素添加到集合中

            this.items[value]=value//集合中,键为value,值为value

            return true

        }

//        has方法--判断集合中是否有某一个元素!

        Set.prototype.has=(value)=>{

return this.items.hasOwnProperty(value)

}

//        remove方法

        Set.prototype.remove=(value)=>{

//  1.判断集合中是否包含该元素

            if (!this.has(value))return false

        //  2.包含则删除集合中的属性,delete是js中的属性

            delete this.items[value]

return true

        }

//        clear方法

        Set.prototype.clear=()=>{

this.items={}

}

//        size方法

        Set.prototype.size=()=>{

return Object.keys(this.items).length

        }

//        获取集合中所有的值

        Set.prototype.values=()=>{

return Object.keys(this.items)

}

}