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 计算当天是本年本月的第几周
Mar 22 Javascript
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
Dec 17 Javascript
JavaScript计时器示例分析
Feb 05 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
本地搭建微信小程序服务器的实现方法
Oct 27 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 Javascript
vue多页面项目中路由使用history模式的方法
Sep 23 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python递归函数定义与用法示例
2017/06/02 Python
python实现批量修改文件名代码
2017/09/10 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
开办化妆品公司创业计划书
2013/12/26 职场文书
户外拓展活动方案
2014/02/11 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
终止劳动合同协议书
2014/04/14 职场文书
化工见习报告范文
2014/10/31 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
服务行业标语口号
2015/12/26 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android