用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 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
JavaScript中的细节分析
Jun 30 Javascript
jQuery prev ~ siblings选择器使用介绍
Aug 09 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
JS自动生成动态HTML验证码页面
Jun 14 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
vue中component组件的props使用详解
Sep 04 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
May 17 Javascript
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
node.js使用yargs处理命令行参数操作示例
Feb 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
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php常用的url处理函数总结
2014/11/19 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
探索webpack模块及webpack3新特性
2017/09/18 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中decorator使用实例
2015/04/14 Python
django之常用命令详解
2016/06/30 Python
Python 统计字数的思路详解
2018/05/08 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
教师申诉制度
2014/01/29 职场文书
庆元旦活动总结
2014/07/09 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
整脏治乱工作简报
2015/07/21 职场文书
oracle重置序列从0开始递增1
2022/02/28 Oracle
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL