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 prototype原型操作笔记
Dec 07 Javascript
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
js中的布尔运算符使用介绍
Nov 20 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
Bootstrap开发实战之第一次接触Bootstrap
Jun 02 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
Aug 24 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
解决Vue动态加载本地图片问题
Oct 09 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
微信小程序实现首页弹出广告
Dec 03 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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中读写文件实现代码
2011/10/20 PHP
php数组去重的函数代码
2013/02/03 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
进一步了解Python中的XML 工具
2015/04/13 Python
python生成器表达式和列表解析
2016/03/10 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
python无序链表删除重复项的方法
2020/01/17 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
python识别验证码的思路及解决方案
2020/09/13 Python
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
教师年终个人自我评价
2013/10/04 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
班长自荐书范文
2014/02/11 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
道路建设实施方案
2014/03/18 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
python基础之类方法和静态方法
2021/10/24 Python
2022微信温控新功能上线
2022/05/09 数码科技