25 Temmuz 2009, CUMARTESİ
Bir dizi değeri içerip içermediğini belirlemek
Eğer bir değeri bir dizi içinde olup olmadığını belirlemek gerekiyor.
Aşağıdaki fonksiyonu kullanıyorum:
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
}
Yukarıdaki işlevi her zaman false değerini döndürür.
Dizi değerleri ve işlev çağrısı aşağıdaki gibi:
arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));
CEVAP
25 Temmuz 2009, CUMARTESİ
arrValues.indexOf('Sam') > -1
8 ve altındaki IE Array.prototype.indexOf
yöntem yoktur. YANİ kullanım: bu sürümler için
if(!Array.prototype.indexOf) {
Array.prototype.indexOf = function(needle) {
for(var i = 0; i < this.length; i ) {
if(this[i] === needle) {
return i;
}
}
return -1;
};
}
Uzun zaman sonra Edit:En iyi JavaScript yama yerel ilkellerin prototype
için değil. Daha iyi bir yol
var indexOf = function(needle) {
if(typeof Array.prototype.indexOf === 'function') {
indexOf = Array.prototype.indexOf;
} else {
indexOf = function(needle) {
var i = -1, index = -1;
for(i = 0; i < this.length; i ) {
if(this[i] === needle) {
index = i;
break;
}
}
return index;
};
}
return indexOf.call(this, needle);
};
Bu gibi kullanabilirsiniz:
var myArray = [0,1,2],
needle = 1,
index = indexOf.call(myArray, needle); // 1
İşlevi indexOf
doğal bir yöntem varlığı, bir kez tespit, ya da yerel işlevi veya dolgu ile kendisi üzerine.
Bunu Paylaş:
Eğer bir dizi başka bir dizinin tüm öğ...
Algoritma eğer dizi n içerip içermediğ...
Eğer harita bir anahtar için bir değer...
Nasıl bir dizi belirli bir değeri vars...
Bir C dizi program aracılığıyla boyutu...