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 继承机制的实现
Aug 12 Javascript
MooTools 1.2介绍
Sep 14 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 Javascript
js获取图片宽高的方法
Nov 25 Javascript
Bootstrap实现响应式导航栏效果
Dec 28 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
js图片放大镜实例讲解(必看篇)
Jul 17 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
js实现无限层级树形数据结构(创新算法)
Feb 27 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 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的类树(支持无限分类)
2006/10/09 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
canvas绘制七巧板
2017/02/03 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
python实现数据写入excel表格
2018/03/25 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
如何用python免费看美剧
2020/08/11 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
python Matplotlib模块的使用
2020/09/16 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
演讲稿格式
2014/04/30 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL