用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 相关文章推荐
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
Bootstrap按钮组件详解
Apr 26 Javascript
JS中BOM相关知识点总结(必看篇)
Nov 22 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
Node.js 进程平滑离场剖析小结
Jan 24 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
微信小程序实现音乐播放页面布局
Dec 11 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中extract()函数的妙用分析
2012/07/11 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
Python3安装Pymongo详细步骤
2017/05/26 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
Python如何将将模块分割成多个文件
2020/08/04 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
工商管理专业应届生求职信
2013/11/04 职场文书
电气工程和自动化自荐信范文
2013/12/25 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
决心书标准格式
2014/03/11 职场文书
房屋出售协议书
2014/04/10 职场文书
数学教育专业求职信
2014/07/22 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
四则混合运算教学反思
2016/02/23 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技