用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 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
JavaScript 面向对象的之私有成员和公开成员
May 04 Javascript
发布一个基于javascript的动画类 Fx.js
Nov 05 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
javascript操作referer详细解析
Mar 10 Javascript
JS制作简单的三级联动
Mar 18 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
详解如何在JS代码中消灭for循环
Dec 11 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 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实例分享之html转为rtf格式
2014/06/02 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python的条件锁与事件共享详解
2019/09/12 Python
jupyter notebook 多行输出实例
2020/04/09 Python
python中二分查找法的实现方法
2020/12/06 Python
竞聘演讲稿
2014/04/24 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
2014年客房部工作总结
2014/11/22 职场文书
横空出世观后感
2015/06/09 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
gateway网关接口请求的校验方式
2021/07/15 Java/Android