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 apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
基于jQuery的Spin Button自定义文本框数值自增或自减
Jul 17 Javascript
js截取字符串的两种方法及区别详解
Nov 05 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
jQuery的:parent选择器定义和用法
Jul 01 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
原生Js实现简易烟花爆炸效果的方法
Mar 20 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
jquery实现轮播图特效
Apr 12 jQuery
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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JS建造者模式基本用法实例分析
2015/06/30 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
python实现两个文件合并功能
2018/04/01 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
建筑工程专业毕业生自荐信
2013/10/19 职场文书
办公室主任先进事迹
2014/01/18 职场文书
施工材料员岗位职责
2014/02/12 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python