jquery ~ $.inArray(value,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)