首頁 >web前端 >js教程 >javascript中判斷一個值是否在數組中並沒有直接使用_基礎知識

javascript中判斷一個值是否在數組中並沒有直接使用_基礎知識

WBOY
WBOY原創
2016-05-16 17:46:171139瀏覽
在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);
}
 例2例2




複製程式碼


程式碼如下:


/**
* 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;iif(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; }
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn