onay

2013-02-11 20 views
5

Ionay

emi_309 | present | weak | 6 
emi_310 | present | strong | 9 
emi_319 | present | medium | 8 
emi_315 | present | weak | 5 
bir değer ilk sütunda varsa basit bir fonksiyon

Örn kullanarak kontrol etmek istiyorum

, emi_77 kontrol biçiminde bir 2d dizi var

ilk sütununda $.inArray(value, array) ile karşılaştım ancak bu işlev sadece 1d dizisi içindir.

2d dizisi için benzer bir şey var mı

cevap

6

Evet, $.inArray ve $.map bir arada yaparsanız:

if ($.inArray(value, $.map(arr, function(v) { return v[0]; })) > -1) { 
    // ... 
} 
+0

Mükemmel çözüm ... çok teşekkür ederim :) – Kim

+0

@Kim Hoş Geldiniz :) – VisioN

1

yeni bir dizi oluşturmak için $.grep kullanabilir ve kontrol edebilir o uzunluk

var val='emi_77'; 
if($.grep(twoDarray, function(item){ return item[0]===val; }).length){ 
    /* item exists*/ 
} 
var

$.grep, özgün diziyi etkilemez

API Başvurusu: http://api.jquery.com/jQuery.grep/

1

JQuery olmadan, bunu nasıl yaparım.

for (var i = 0; i <array.length; i++) { 
     if(array[i][0] == 'emi_77'){ 
      alert("exists"); 
     } 
} 

Bunu daha da ileri götürmek isterseniz, aşağıdaki işlevi kullanabilirsiniz;

function IsIn2D(str,order,array){ 
    for (var i = 0; i <array.length; i++) { 
     return array[i][order] == str; 
    } 
} 

;
dizisi o
sipariş iç diziler

örneğin Appling tarafından dize sırasıdır varsa kontrol etmek istediğiniz Dize
str aramak istediğiniz dizi olduğunu Bu sorunun örnek 2B dizi:
emi_309 | hediye | zayıf | 6
emi_310 | hediye | güçlü | 9
emi_319 | hediye | ortam | 8
emi_315 | hediye | zayıf | Bu yöntemler 5

IsIn2D('emi_77',0,array); /*returns false*/ 
IsIn2D('emi_315',0,array); /*returns true*/ 
0

Kontrol 2D diziden aramak için. Sadece dizgeye dönüştürmeyi kontrol edin ve karşılaştırın.

function isArrayItemExists(array , item) { 
    for (var i = 0; i < array.length; i++) { 
     if(JSON.stringify(array[i]) == JSON.stringify(item)){ 
      return true; 
     } 
      } 
      return false; 
}