JS判断元素是否在数组内

一、jQuery

如果是用JQuery的话,可以用inArray()函数:

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) : 待处理数组。

用法为:

[javascript] view plain copy

  1. $.inArray(value, array)

二、自己写函数

[javascript] view plain copy

  1. function contains(arr, obj) {
  2. var i = arr.length;
  3. while (i--) {
  4. if (arr[i] === obj) {
  5. return true;
  6. }
  7. }
  8. return false;
  9. }

用法为:

[javascript] view plain copy

  1. var arr = new Array(1, 2, 3);
  2. contains(arr, 2);//返回true
  3. contains(arr, 4);//返回false

三、给Array增加一个函数

[javascript] view plain copy

  1. Array.prototype.contains = function (obj) {
  2. var i = this.length;
  3. while (i--) {
  4. if (this[i] === obj) {
  5. return true;
  6. }
  7. }
  8. return false;
  9. }

使用方法:

[javascript] view plain copy

  1. [1, 2, 3].contains(2); //返回true
  2. [1, 2, 3].contains(‘2‘); //返回false

四、使用indexOf

但是有个问题是IndexOf在某些IE版本中是不兼容的,可以用下面的方法:

[javascript] view plain copy

  1. if (!Array.indexOf) {
  2. Array.prototype.indexOf = function (obj) {
  3. for (var i = 0; i < this.length; i++) {
  4. if (this[i] == obj) {
  5. return i;
  6. }
  7. }
  8. return -1;
  9. }
  10. }

先判断Array是否有indexOf方法,如果没有就扩展出此方法。

所以上面代码要写在使用indexOf方法的代码之前:

[javascript] view plain copy

    1. var arr = new Array(‘1‘, ‘2‘, ‘3‘);
    2. if (!Array.indexOf) {
    3. Array.prototype.indexOf = function (obj) {
    4. for (var i = 0; i < this.length; i++) {
    5. if (this[i] == obj) {
    6. return i;
    7. }
    8. }
    9. return -1;
    10. }
    11. }
    12. var index = arr.indexOf(‘1‘);//为index赋值为0
时间: 2024-10-11 05:10:43

JS判断元素是否在数组内的相关文章

java 判断元素是否在数组内

一,先转为List,再使用contains()方法 String[] strArr = new String[] { "a", "b", "c"}; String str = "c"; List<String> list = Arrays.asList(strArr); boolean result = list.contains(str); System.out.println(result); // true

js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内

/** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对象 */ function dateParse(dateString){ var SEPARATOR_BAR = "-"; var SEPARATOR_SLASH = "/"; var SEPARATOR_DOT = "."; var dateArr

javascript判断元素是否在数组中

代码: /* @desc:判断元素是否在数组中 @param value 需要判断的元素 @param arr 要检测的数组 @return true:在数组中 flase:不在数组中 */ function inarray(value,arr){ for(var i = 0; i < arr.length; i++){ if(value === arr[i]){ return true; } } return false; } 测试: var arr = [1,2,5] var value =

js判断元素是否是disable状态

js判断元素是否是disable状态 jquery判断元素状态用$(select).prop(属性值) == true js判断button是否可以点击: //判断button是否为不可点击状态 if($("#buyButton").prop("disabled") == true){} //判断button是否为不可点击状态 if($("#buyButton").prop('disabled') != true){} /** * 购买按钮失效

js判断一个对象是否为数组

1,真正的数组的判断方法 javascript中最简单的声明数组方法为: var a = []; 判断是否为数组的最直接的方法为: 复制代码 代码如下: a instanceof Array //true a .constructor == Array //true 这里涉及到一个instanceof语法,instanceof是一个云算符,与"+-*/"一样,它的语法如下: result = obj intanceof class 是用来判断一个对象是否是某个class的一个实例,运算

js获取元素样式包括非行内样式

var obj=document.getElementById("id"): 由于js新版本的发放,越来越多的人喜欢用原生js而非jquery对dom元素进行操作,那么如果通过js获取dom元素的样式呢,很多人都知道用obj.style这种方式,但是,这种方式只能获取dom行内样式,一旦,我们定义class,然后再css文件里写时就会获取不到,下面我主要介绍获取行内样式和获取非行内样式两种获取方法. 1,获取行内样式. <div style="width:200&quo

Js - 判断元素是否隐藏、显示

判断元素是否隐藏.显示的方法,需要的朋友可以参考下 : 1.通过判断元素display属性状态值来实现 console.log($('div').css("display"));       // inlineif($('div').css("display") != 'none') { console.log('aaaaa');       // aaaaa $('div').hide();         console.log($('div').css(&qu

js 判断元素是否在列表中

判断元素是否在列表中 isInArray()判断输入的数值是否在数组中: /** * 使用循环的方式判断一个元素是否存在于一个数组中 * @param {Object} arr 数组 * @param {Object} value 元素值 */ function isInArray(arr,value){ for(var i = 0; i < arr.length; i++){ if(value === arr[i]){ return true; } } return false; } 使用:

判断元素是否在数组中存在,返回布尔.html

<body> <!-- 判断数组中是否存在60这个元素 返回布尔类型 --> <script type="text/javascript"> var arr=[1,2,5,6,4,8,4,4,4,5] function has(arr,n){ //判断数组里面有没有n这个数据 //先假设数组里面没有这个数据 var flag=false //遍历 for (var i=0;i<arr.length;i++) { //判断有没有这个数据 if(a