zoukankan      html  css  js  c++  java
  • 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
     
     在CODE上查看代码片派生到我的代码片
    1. $.inArray(value, array)  

    二、自己写函数

    [javascript] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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
     
     在CODE上查看代码片派生到我的代码片
    1. var arr = new Array(1, 2, 3);  
    2. contains(arr, 2);//返回true  
    3. contains(arr, 4);//返回false  


    三、给Array增加一个函数

    [javascript] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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
     
     在CODE上查看代码片派生到我的代码片
    1. [1, 2, 3].contains(2); //返回true  
    2. [1, 2, 3].contains('2'); //返回false  



    四、使用indexOf

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

    [javascript] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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
     
     在CODE上查看代码片派生到我的代码片
      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  
  • 相关阅读:
    RabbitMQ 安装
    redis windows安装
    Python Scrapy 爬取煎蛋网妹子图实例(二)
    Python Scrapy 爬取煎蛋网妹子图实例(一)
    Python pymysql 增删改查封装
    Python Scrapy 爬虫框架实例(一)
    Mac Anaconda 简单介绍 -- 环境管理
    python Scrapy 常见问题记录
    Hive json字符串解析
    大数据
  • 原文地址:https://www.cnblogs.com/yu-709213564/p/6580790.html
Copyright © 2011-2022 走看看