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 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
Javascript中Array用法实例分析
Jun 13 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
node.js实现登录注册页面
Apr 08 Javascript
webpack4+react多页面架构的实现
Oct 25 Javascript
微信小程序使用map组件实现路线规划功能示例
Jan 22 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
May 07 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
JavaScript中时间格式化新思路toLocaleString()
Nov 07 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实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python群发邮件实例代码
2014/01/03 Python
Python3使用requests发闪存的方法
2016/05/11 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
制药工程专业职业生涯规划范文
2014/03/10 职场文书
婚前协议书
2014/04/15 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
机器人总动员观后感
2015/06/09 职场文书
基于PyQt5制作一个群发邮件工具
2022/04/08 Python