在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 if (a[ i] == obj) {
b = true;break;
}
}
if (b)
alert("陣列中存在a[" i "]:" a[ i]);
else
alert("數組中不存在" obj);
}
複製程式碼
程式碼如下:
/**
* JS判斷一個值是否存在數組中
* 瓊台博客
*/
// 定義一個判斷函數// 判斷參數是不是陣列
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;iif(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;iif(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
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; }