JavaScript实现的in_array函数


Posted in Javascript onAugust 27, 2014

在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数。但我们可以写一个类似in_array()函数来判断是一个值否在函数中。

/**
 * JS判断一个值是否存在数组中
 */
 
// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' ? arr.constructor===Array ? arr.length ? arr.length===1 ? arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr 
    );
 
  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array"; 
  }
 
  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;  
    }
  }
 
  // 如果不在数组中就会返回false
  return false;
}
 
// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;
 
// 声明一个数组
var arr = Array('blue','red','110','120');
 
// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // true
 
// 数字测试
var num = 119;
var isInArray = num.in_array(arr);
alert(isInArray); // false

如果传入的不是数组则会抛出异常

 

/**
 * JS判断一个值是否存在数组中
 */
 
// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' ? arr.constructor===Array ? arr.length ? arr.length===1 ? arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr 
    );
 
  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array"; 
  }
 
  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;  
    }
  }
 
  // 如果不在数组中就会返回false
  return false;
}
 
// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;
 
// 声明一个数组
var arr = null;
 
// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // uncaught exception: arguments is not Array

直接报错:

JavaScript实现的in_array函数

Javascript 相关文章推荐
开发跨浏览器javascript常见注意事项
Jan 01 Javascript
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
Jan 13 Javascript
javascript常用的正则表达式实例
May 15 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
jQuery实现的图片轮播效果完整示例
Sep 12 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
Mar 02 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
VUE兄弟组件传值操作实例分析
Oct 26 Javascript
解决Vue-cli无法编译es6的问题
Oct 30 Javascript
深入浅析React中diff算法
May 19 Javascript
JavaScript AJAX之惰性载入函数
Aug 27 #Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 #Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 #Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 #Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 #Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 #Javascript
JavaScript中输出标签的方法
Aug 27 #Javascript
You might like
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
js表单登陆验证示例
2016/10/19 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
Python中运行并行任务技巧
2015/02/26 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
python switch 实现多分支选择功能
2020/12/21 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
爱情检讨书大全
2014/01/21 职场文书
小学班级特色活动方案
2014/08/31 职场文书
网吧管理制度范本
2015/08/05 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
HTTP中的Content-type详解
2022/01/18 HTML / CSS