例如: 代码如下:
$.get('aaaaa.ashx',null,function(d){ // 假设d 返回 的值为 1,3,43,23,54,67 var arr = d.split(','); $.inArray(3,arr) ==-1 //true //为什么啊 //如果写成这样的 var arr = eval('['+d+']'); $.inArray(3,arr) >-1 //true }); 这是为什么呢? 望知道的朋友跟贴回复下. 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; |