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 相关文章推荐
基于jQuery的获取标签名的代码
Jul 16 Javascript
javascript实现图片切换的幻灯片效果源代码
Dec 12 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
JavaScript代码生成PDF文件的方法
Feb 26 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
jquery实时获取时间的简单实例
Jan 26 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
Vue头像处理方案小结
Jul 26 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 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的PDO错误与错误处理
2019/01/27 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python编程之多态用法实例详解
2015/05/19 Python
Python将图片转换为字符画的方法
2020/06/16 Python
Python3多线程操作简单示例
2018/05/22 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python openpyxl模块的使用详解
2021/02/25 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
使用html5制作loading图的示例
2014/04/14 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
高中生自我评语大全
2014/01/19 职场文书
颐和园导游词400字
2015/01/30 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL