javascript中判断一个值是否在数组中并没有直接使用


Posted in Javascript onDecember 17, 2012
在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数。但我们可以写一个类似in_array()函数来判断是一个值否在函数中

例1

/* 
* 
* 判断在数组中是否含有给定的一个变量值 
* 参数: 
* needle:需要查询的值 
* haystack:被查询的数组 
* 在haystack中查询needle是否存在,如果找到返回true,否则返回false。 
* 此函数只能对字符和数字有效 
* 
*/ 
function findnum(){ 
var a=[1,2];//假设a是数组,obj是要判断的数 
var obj=1; 
var b = false; 
for (var i = 0; i < a.length; i++) { 
if (a[i] == obj) { 
b = true;break; 
} 
} 
if (b) 
alert("数组中存在a[" + i + "]:" + a[i]); 
else 
alert("数组中不存在"+obj); 
}
 
例2
/** 
* 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; 
} 
}
 
例5
function isRepeat(arr){ 
var hash = {}; 
for(var i in arr) { 
if(hash[arr[i]]) 
return true; 
hash[arr[i]] = true; 
} 
return false; 
}
Javascript 相关文章推荐
JavaScript的单例模式 (singleton in Javascript)
Jun 11 Javascript
纯js网页画板(Graphics)类简介及实现代码
Dec 24 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 Javascript
浅谈jQuery中replace()方法
May 13 Javascript
TypeScript学习之强制类型的转换
Dec 27 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
js使用swiper实现层叠轮播效果实例代码
Dec 12 Javascript
如何通过vscode运行调试javascript代码
Jul 24 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
Dec 17 #Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 #Javascript
如何让页面在打开时自动刷新一次让图片全部显示
Dec 17 #Javascript
js中escape对应的C#解码函数 UrlDecode
Dec 16 #Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 #Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 #Javascript
JS函数实现动态添加CSS样式表文件
Dec 15 #Javascript
You might like
php 接口类与抽象类的实际作用
2009/11/26 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
Vue header组件开发详解
2018/01/26 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
python的id()函数解密过程
2012/12/25 Python
在Python中处理XML的教程
2015/04/29 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
python爬取m3u8连接的视频
2018/02/28 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
医药代表个人求职信范本
2013/12/19 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
实习协议书
2015/01/27 职场文书
资金申请报告范文
2015/05/14 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android