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 相关文章推荐
SUN的《AJAX与J2EE》全文译了
Feb 23 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
Aug 16 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
Angularjs 滚动加载更多数据
Mar 17 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
Dec 29 Javascript
JS简单判断是否在微信浏览器打开的方法示例
Jan 08 Javascript
百度小程序之间的页面通信过程详解
Jul 18 Javascript
JavaScript在web自动化测试中的作用示例详解
Aug 25 Javascript
vuex实现购物车功能
Jun 28 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后退一页表单内容保存实现方法
2012/06/17 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
Python实现的爬虫刷回复功能示例
2018/06/07 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
Django进阶之CSRF的解决
2018/08/01 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Django 静态文件配置过程详解
2019/07/23 Python
Python2与Python3的区别点整理
2019/12/12 Python
基于python使用tibco ems代码实例
2019/12/20 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
python3中编码获取网页的实例方法
2020/11/16 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
C/C++程序员常见面试题一
2012/12/08 面试题
个人自我鉴定
2013/11/07 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
领导干部失职检讨书
2015/05/05 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Redis三种集群模式详解
2021/10/05 Redis