判断值是否在数组中

判断一个值是否在对象中很容易,只需要判断键值 in 对象中。
例如
var a ={1:a,2:s,3:d}
if(1 in a){
return true;
}
else{
return false;
}

但是如何判断一个值在数组中?
可以使用一个函数indexOf()
如果返回值为-1则说明不存在,如果返回值为大于-1的整数,则说明存在。
例如:
var arr = [1,2,3];
arr.indexOf(1); // 返回0
arr.indexOf(5); // 返回-1
个人认为这个方法是最简单的。

还有一种方法是遍历数组看看该值是否在里面。
例如:
Array.prototype.contains = function(obj) {
  var i = this.length;
  while (i--) {
    if (this[i] === obj) {
      return true;
    }
  }
  return false;
}
alert([1, 2, 3].contains(2)); // => true
alert([1, 2, 3].contains('2')); // => false
这种方法就是自己创造的方法,感觉不如indexOf方便快捷;

猜你喜欢

转载自liujun11.iteye.com/blog/2379068