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获取带特殊符号的ID 标签的方法
Apr 30 Javascript
jQuery插件开发的五种形态小结
Mar 04 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
利用jquery禁止外层滚动条的滚动
Jan 05 Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 Javascript
用最少的JS代码写出贪吃蛇游戏
Jan 12 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
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
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
PHP return语句的另一个作用
2014/07/30 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
Java中final关键字详解
2015/08/10 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python urlopen 使用小示例
2008/09/06 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
python中判断文件结束符的具体方法
2020/08/04 Python
python中的yield from语法快速学习
2020/11/06 Python
python lambda的使用详解
2021/02/26 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
小溪流的歌教学反思
2014/02/13 职场文书
六查六看六改心得体会
2014/10/14 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
社区党支部承诺书
2015/04/29 职场文书
Golang 结构体数据集合
2022/04/22 Golang