用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 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
js实现符合国情的日期插件详解
Jan 19 Javascript
jQuery实现鼠标跟随效果
Feb 20 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 Vue.js
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(2)――PHP类型
2010/02/15 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
JavaScript 指导方针
2007/04/05 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python3基础之基本运算符概述
2014/08/13 Python
Python复制文件操作实例详解
2015/11/10 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
酒店总经理工作职责
2013/12/13 职场文书
美术专业个人自我评价
2014/01/18 职场文书
员工培训邀请函
2014/02/02 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby