用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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
Oct 11 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 Javascript
vue实现的双向数据绑定操作示例
Dec 04 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
搭建一个Koa后端项目脚手架的方法步骤
May 30 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
JavaScript实现网页动态生成表格
Nov 25 Javascript
react中hook介绍以及使用教程
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资源管理框架Assetic简介
2014/06/12 PHP
php单例模式示例分享
2015/02/12 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python itertools模块详解
2015/05/09 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python自动发送邮件脚本
2018/06/20 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Python3常用内置方法代码实例
2019/11/18 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
python实现串口通信的示例代码
2020/02/10 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python xlwt模块使用代码实例
2020/06/10 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
岗位说明书标准范本
2014/07/30 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
初中体育教学随笔
2015/08/15 职场文书
护士业务学习心得体会
2016/01/25 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书