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 相关文章推荐
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
Oct 11 Javascript
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
Oct 08 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
jquery插件开发模式实例详解
Jul 20 jQuery
微信小程序文字显示换行问题
Jul 28 Javascript
0基础学习前端开发的一些建议
Jul 14 Javascript
javascript实现贪吃蛇小游戏
Jul 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
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python并发编程之线程实例解析
2017/12/27 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
python中kmeans聚类实现代码
2018/02/23 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
django在开发中取消外键约束的实现
2020/05/20 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
电子商务专业个人的自我评价分享
2013/10/29 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
寒假思想汇报
2014/01/10 职场文书
年会活动策划方案
2014/01/23 职场文书
小学科学教学计划
2015/01/21 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
2019年教师入党申请书
2019/06/27 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书