作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 00:17:52 阅读 我要评论

在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 jscroll模拟html元素滚动条

主流浏览器默认为html元素提供的滚动条不美观,而且前端开发人员想对其通过css进行统一样式的美化也是不可实现的。比如ie可以通过样式来实现简单的美化、Webkit内核浏览器可以控制滚动条的显示效果,firefox则不允>>>详细阅读


本文标题:javascript中判断一个值是否在数组中并没有直接使用

地址:http://www.17bianji.com/kaifa2/JS/22793.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)