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 相关文章推荐
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
AngularJS 工作原理详解
Aug 18 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
bootstrap table表格使用方法详解
Apr 26 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
Node.js使用Angular简单示例
May 11 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 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
PHP4.04简明安装
2006/10/09 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP微信PC二维码登陆的实现思路
2017/07/13 PHP
一端时间轮换的广告
2006/06/26 Javascript
slice函数的用法 之不错的应用
2006/12/29 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
django实现前后台交互实例
2017/08/07 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python集合是否可变总结
2019/06/20 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python上下文管理器全实例详解
2019/11/12 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
大学生村官任职感言
2014/01/09 职场文书
促销活动策划方案
2014/01/12 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
python使用glob检索文件的操作
2021/05/20 Python