您的位置:首页 > Web前端 > JQuery

关于jQuery的inArray 方法介绍

2014-11-26 12:10 162 查看
转自:http://www.jb51.net/article/28486.htm

代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>main</title>
</head>
<body>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script>
$(function() {
var d = "1,3,43,23,54,67";
var arr = d.split(',');
alert($.inArray(3, arr) == -1);// true
alert($.inArray("3", arr) == -1);// false
var arr = eval('[' + d + ']');
alert($.inArray(3, arr) > -1);// true
});
</script>
</body>
</html>


jquery inarray()函数详解:

jquery.inarray(value,array)

确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。

determine the index of the first parameter in the array (-1 if not found).
返回值
jquery
参数
value (any) : 用于在数组中查找是否存在
array (array) : 待处理数组。


代码:

var testarr=[{"a":"0"},{"b":"1"},{"c":"2"}];
alert($.inarray({"a":"0"},testarr));  
说这个值总是返回-1;

var obj = {'m' : '1'};
var arr = [obj, '1', 2];
alert($.inarray(obj, arr));
这个返回值正常。


这是对象是引用类型的缘故。

引用类型的特性可以用一小段程序演示:
代码如下:

var obj = {"a" : 0};
var obj1 = {"a" : 0};
alert(obj == obj1);// false
var obj = {"a" : 0};
var obj1 = obj;
alert(obj == obj1); // true


为此我们看下jquery中inAarry函数的源码:

/*@param elem 用于在数组中查找的项
@param array 待查找的数组
*/
inArray: function(elem, array) {
//判断浏览器是否支持javascript1.6新增的array原生的indexOf
if(array.indexOf) {
return array.indexOf(elem);
}
var i,
len = array.length;
//按照array的长度进行遍查找
for(i = 0; i < len; i++) {
if(array[i] === elem ) {
// 如果array[i]的元素和elem相同
return i;
}
}
// 没有找到的话就返回-1
return -1;
}


注意"==="符号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: