元素在数组中的位置,如果没搜索到则返回 -1
2.arr.includes(搜索元素):
如果是返回 true,否则false
3.filter() 方法:返回符合条件的元素组成的数组
4.array.find():返回找出第一个符合条件的数组元素
5.array.findIndex():返回第一个符合条件的数组元素的位置,
如果所有元素都不符合条件,则返回-1
6.传统for()循环
7.for...of
8.forEach
9.some():用于检测数组中的元素是否满足指定条件(函数提供)
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
10.every:用于检测数组中的元素是否满足指定条件(函数提供)
如果都满足条件,则表达式返回true ,
如果有一个不满足,则返回false。
在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>
可以直接使用数组的indexOf方法来判断,如果元素存在于数组中,那么返回元素在数组中的下标值,如果不存在,那么返回-1,但是该方法在某些版本的IE中是不起作用,所以建议使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1,代码如下所示:
/*** 使用jquery的inArray方法判断元素是否存在于数组中
* @param {Object} arr 数组
* @param {Object} value 元素值
*/
function isInArray2(arr,value){
var index = $.inArray(value,arr)
if(index >= 0){
return true
}
return false
}