用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 相关文章推荐
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
javascript实现json页面分页实例代码
Feb 20 Javascript
浅谈JavaScript中的对象及Promise对象的实现
Nov 15 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
vue.js中指令Directives详解
Mar 20 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 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
星际RPG字典
2020/03/04 星际争霸
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
python中的字典详细介绍
2014/09/18 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python 多个参数不为空校验方法
2019/02/14 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
如何查找网页漏洞
2016/06/22 面试题
外语专业毕业生自荐信
2014/04/14 职场文书
党课心得体会范文
2014/09/09 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android