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 相关文章推荐
正则表达式语法
Oct 09 Javascript
一段非常简单的让图片自动切换js代码
Nov 10 Javascript
跨域表单提交状态的变相判断代码
Nov 12 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
使用bat打开多个cmd窗口执行gulp、node
Feb 17 Javascript
jquery实现左右滑动式轮播图
Mar 02 Javascript
JavaScript实现修改伪类样式
Nov 27 Javascript
vue监听对象及对象属性问题
Aug 20 Javascript
js实现秒表计时器
Dec 16 Javascript
Vue Element校验validate的实例
Sep 21 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+DBM的同学录程序(3)
2006/10/09 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
python修改注册表终止360进程实例
2014/10/13 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python 判断奇数偶数的方法
2018/12/20 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
几个MySql的面试题
2013/04/22 面试题
小学生毕业评语
2014/12/26 职场文书
人事任命通知
2015/04/20 职场文书
歼十出击观后感
2015/06/11 职场文书
结婚主持人致辞
2015/07/28 职场文书
2016年寒假见闻
2015/10/10 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
Spring Boot 实现 WebSocket
2022/04/30 Java/Android