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 实现input输入什么div图层显示什么
Jun 15 Javascript
JS判断当前页面是否在微信浏览器打开的方法
Dec 08 Javascript
js HTML5 Ajax实现文件上传进度条功能
Feb 13 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 Javascript
Angular2 (RC5) 路由与导航详解
Sep 21 Javascript
AngularJS service之select下拉菜单效果
Jul 28 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 Javascript
阿望教你用vue写扫雷小游戏
Jan 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
计数器详细设计
2006/10/09 PHP
php网页病毒清除类
2014/12/08 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
JS中字符串trim()使用示例
2015/05/26 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
编写Python CGI脚本的教程
2015/06/29 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
is_file和file_exists效率比较
2021/03/14 PHP
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
幼儿教师考核制度
2014/01/25 职场文书
青春寄语大全
2014/04/09 职场文书
对祖国的寄语大全
2014/04/11 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
离婚协议书怎么写
2015/01/26 职场文书
万能检讨书
2015/01/27 职场文书
学校捐书倡议书
2015/04/27 职场文书
物业保洁员管理制度
2015/08/05 职场文书