用js实现in_array的方法


Posted in Javascript onNovember 05, 2013

在js中我们不能像php中那样直接要判断一个值或字符串在数组中利用in_array来实现,因为js没有in_array函数,但是我们可以自定来给js写一个in_array函数,下面我收集了几个。
例1

function in_array(stringToSearch, arrayToSearch) {
 for (s = 0; s < arrayToSearch.length; s++) {
  thisEntry = arrayToSearch[s].toString();
  if (thisEntry == stringToSearch) {
   return true;
  }
 }
 return false;
}

例2
var a = Array(1,2,3,4,5);
function in_array(search,array){
    for(var i in array){
        if(array[i]==search){
            return true;
        }
    }
    return false;
}
alert(in_array(11,a));
 

例3
/** 
* 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 
JS判断一个数组中是否有重复值的 
var ary = new Array("111","22","33","111"); 
var s = ary.join(",")+","; 
for(var i=0;i<ary.length;i++) { 
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { 
alert("数组中有重复元素:" + ary[i]); 
break; 
} 
}
 

总结
三个实例都实现了in_array函数的功能,都可以判断给定的元素是否在数组中了,个人最喜欢的是最后一种办法,考虑比较全面哦。
Javascript 相关文章推荐
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
jquery 插件开发方法小结
Oct 23 Javascript
jquery load事件(callback/data)使用方法及注意事项
Feb 06 Javascript
jQuery中click事件的定义和用法
Dec 20 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
详解webpack的配置文件entry与output
Aug 21 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
详解vue使用$http服务端收不到参数
Apr 19 Javascript
jquery.pager.js分页实现详解
Jul 29 jQuery
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 Javascript
JavaScript如何操作css
Oct 24 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 #Javascript
javascript alert乱码的解决方法
Nov 05 #Javascript
jquery三个关闭弹出层的小示例
Nov 05 #Javascript
jquery ajax post提交数据乱码
Nov 05 #Javascript
jquery ajax属性async(同步异步)示例
Nov 05 #Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 #Javascript
Javascript脚本实现静态网页加密实例代码
Nov 05 #Javascript
You might like
php 数组的指针操作实现代码
2011/02/08 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
基于python select.select模块通信的实例讲解
2017/09/21 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
python如何制作英文字典
2019/06/25 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
selenium如何定位span元素的实现
2021/01/13 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
关于爱情的广播稿
2014/01/16 职场文书
公司中秋节活动方案
2014/02/12 职场文书
英文推荐信格式范文
2014/05/09 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
防灾减灾标语
2014/10/07 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
详解php中流行的rpc框架
2021/05/29 PHP
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android