关于jQuery的inArray 方法介绍

  例如:

  

复制代码 代码如下:

  $.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;