js使用for迴圈查詢數組中是否存在某個值,js數組
應為IE8不支援indexOf,所有寫一個for迴圈方法來判斷是否存在,並返回true false
function isCon(arr, val){ for(var i=0; i<arr.length; i++){ if(arr[i] == val) return true; } return false; }
在js中添加此方法,在調用處調用該方法
window.onload = function(){ var arr=new Array(1,2,3,2,4,2,5,6,7,2,4,3,18,12,41,87); alert(isCon(arr, 8)); }
js中數組去重,盡量只用for 與if迴圈的,網上找的方法很多都不可以用,們
方法一:去重複資料
<script>
Array.prototype.distinct=function(){
var a=[],b=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop]) continue; //防止迴圈到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
}
return a;
}
var x=['a','b','c','d','b','a','e','a','b','c','d','b','a','e'];
document.write('原始數組:'+x);
document.write("<br />");
document.write('去重複後:'+x.distinct());
</script>
方法二:取重複資料
<script type="text/javascript">
Array.prototype.distinct=function(){
var a=[],b=[],c=[],d=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop])
{
continue;
}//防止迴圈到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
else {
c.push(d);
d[d]=1;
}
}
//return a;
return c.distinct1();
}
Array.prototype.distinct1=function(){
var a=[],b=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop]) continue; //防止迴圈到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
}
return a;
}
js判斷一個值是否存在於一個js數組中
js中判斷某個元素是否存在於某個 js數組中,相當於 php 語言中的 in_array 函數。
Array.prototype.S=String.fromCharCode(2);
Array.prototype.in_array=function(e){
var r=new RegExp(this.S+e+this.S);
return (r.test(this.S+this.join(this.S)+this.S));};用法如下:
var arr=new Array(["b",2,"a",4,"test"]);
arr.in_array('test');//判斷 test 字串是否存在於 arr 數組中,存在返回true 否則false,此處將返回true註:此函數只對字元和數字有效。
另外在jquery中也有一個in_array方法,該方法的原型為:
定義:確定第一個參數value在給定的數組array中的位置(如果沒有找到則返回 -1 )。