用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 相关文章推荐
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
jQuery 使用手册(三)
Sep 23 Javascript
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
Feb 23 Javascript
基于vue的fullpage.js单页滚动插件
Mar 20 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
利用Blob进行文件上传的完整步骤
Aug 02 Javascript
详解vue为什么要求组件模板只能有一个根元素
Jul 22 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
Jul 29 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 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 转义使用详解
2013/07/15 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
javascript 解析url的search方法
2010/02/09 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
电气工程自动化求职信
2014/03/14 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
单位接收函范文
2015/01/30 职场文书
送达通知书
2015/04/25 职场文书
关爱空巢老人感想
2015/08/11 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书