用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 相关文章推荐
该如何加载google-analytics(或其他第三方)的JS
May 13 Javascript
Javascript this 的一些学习总结
Aug 02 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
9个JavaScript日常开发小技巧
Oct 06 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
小程序中手机号识别的示例
Dec 14 Javascript
前端如何实现动画过渡效果
Feb 05 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/01/02 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
一个网马的tips实现分析
2010/11/28 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
python 实时遍历日志文件
2016/04/12 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
招商经理岗位职责
2013/11/16 职场文书
小学教研工作制度
2014/01/15 职场文书
体育课课后反思
2014/04/24 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
事业单位考察材料范文
2014/12/25 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
Ajax实现异步加载数据
2021/11/17 Javascript
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫