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 相关文章推荐
判断页面是关闭还是刷新的js代码
Jan 28 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
js数组去重的方法汇总
Jul 29 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
javascript实现的上下无缝滚动效果
Sep 19 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
vue项目中的webpack-dev-sever配置方法
Dec 14 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 Javascript
通过JS深度判断两个对象字段相同
Jun 14 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
python 反向输出字符串的方法
2018/07/16 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
Python循环实现n的全排列功能
2019/09/16 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
法学专业本科生自荐信范文
2013/12/17 职场文书
环保建议书200字
2014/05/14 职场文书
社区服务标语
2014/07/01 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
商场收银员岗位职责
2015/04/07 职场文书
专职安全员岗位职责
2015/04/11 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技