2013-02-11 24 views
5

Ich habe einen 2D-Array im Formatüberprüfen, ob Wert existiert in 2D-Array

emi_309 | present | weak | 6 
emi_310 | present | strong | 9 
emi_319 | present | medium | 8 
emi_315 | present | weak | 5 

ich überprüfen mag, ob ein Wert in der ersten Spalte existiert mit einer einfachen Funktion

Eg, ob emi_77 existiert in der ersten Spalte

Ich stieß auf $.inArray(value, array), aber diese Funktion ist nur für ein 1d-Array.

Gibt es etwas ähnliches für 2D-Array

Antwort

6

Ja, wenn Sie tun, um eine Kombination aus $.inArray und $.map:

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

Perfekte Lösung ... Vielen Dank :) – Kim

+0

@Kim Gern geschehen :) – VisioN

1

$.grep verwenden können neue Array zu erstellen und überprüfen, es ist Länge

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

$.grep hat keine Auswirkungen auf das Original-Array

API-Referenz: http://api.jquery.com/jQuery.grep/

1

Hier ist, wie ich es einfach tun, ohne Jquery.

Wenn Sie dies weiter machen möchten, können Sie die folgende Funktion verwenden;

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

wo;
Array ist das Array Sie
str ist die Zeichenfolge, die Sie überprüfen möchten, suchen möchten, wenn es in den internen Arrays

zum Beispiel durch appling
um ist die Reihenfolge der Zeichenfolge vorhanden dies zu der Frage 2D-Array der Frage:
emi_309 | Gegenwart | schwach | 6
emi_310 | Gegenwart | stark | 9
emi_319 | Gegenwart | mittel | 8
emi_315 | Gegenwart | schwach | 5

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

Überprüfen Sie diese Methoden, um von 2D-Array zu suchen. Überprüfen Sie einfach mit Umwandlung in Zeichenfolge und vergleichen.

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