JQuery 引用问题解析
今天在用到内置的 $.inArray() 函数是,发现 其返回值一直都是 -1 很是不解。
百度了一下 倒是有人倒出了原因,例子如下:
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));
是脑残还是怎样?这是解决办法吗?你这么写,那还用inArray 去判断有什么意义吗?
问题是由于 两个object 是不能简单的用 == 判断是否相等的。本身 object 变量 表示的是引用,
必须要 层层递归到最底层的元素 去比较其值是否相等。
总之 js 对于变量的类型判断的是很严格的,可能是 用php习惯了 以为 1 == “1” 都是正确的。 真不知道php这样的弱类型语言 对于程序员本身 利弊到底各占多少啊~~~
以后 还要多加注意啊!!!

浙公网安备 33010602011771号