javascript中判断一个值是否在数组中并没有直接使用
在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; }
相关推荐
zhaowj00 2020-06-26
azhedashuaibi 2019-06-27
spinachcqb 2020-07-27
zhouyuqi 2020-06-13
寻常白昼 2020-06-13
有梦就能实现 2020-06-05
fujuan000 2020-05-31
Nicolase 2020-05-30
清风徐来水波不兴 2020-05-28
stefan0 2020-04-22
doupoo 2020-05-04
清风徐来水波不兴 2020-04-17
xcguoyu 2020-03-28
缘起宇轩阁 2020-01-31
amberom 2019-11-02
xcguoyu 2019-10-29