2012-10-09 6 views
5

Mögliche Duplizieren:
how to fetch array keys with jQuery?PHP-Funktion array_keys Äquivalent in jquery

PHP eingebaute Funktion array_keys(), Äquivalent in jquery irgendeine es in Funktion in jquery ähnlich der PHP gebaut array_keys(),.

bitte vorschlagen

+1

Überprüfen Sie dies: http://StackOverflow.com/Questions/1254227/How-To-Fetch-Array-Tkeys-with-Jquery – Josh

+1

Btw: Arrays in Javascript können nur numerische Tasten haben, gibt es nicht so etwas wie ein assoziatives Array. Es kann nur durch ein Objekt simuliert werden ([hat aber Fehler] (http://blog.kevinchisholm.com/javascript/associative-arrays-in-javascript/)) –

Antwort

4

Sie müssen Ihre eigene Funktion erhalten die gleiche Funktionalität definieren. Versuchen Sie dies:

function arrayKeys(input) { 
    var output = new Array(); 
    var counter = 0; 
    for (i in input) { 
     output[counter++] = i; 
    } 
    return output; 
} 

arrayKeys({"one":1, "two":2, "three":3}); // returns ["one","two","three"] 
1

bei PHPJS Werfen Sie einen Blick, ein Projekt, das viele PHP-Funktionen in Vanille JavaScript mit minimalen Abhängigkeiten reproduzieren soll. In Ihrem Fall möchten Sie array_keys.

3

Nein, es gibt in jQuery nichts Bestimmtes dafür. Es gibt eine JavaScript-Methode, aber es ist noch nicht weithin unterstützt Object.keys(), so dass die Leute es nicht für generische Projekte verwenden. Die beste Sache, die ich denken könnte, ist

var keys = $.map(your_object, function(value, key) { 
    return key; 
}); 
+0

Dies ist die beste Antwort, aber 'Object.keys () wird jetzt weitgehend unterstützt, einschließlich IE9 + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – sMyles

3

Sie brauchen nicht jQuery oder andere Bibliothek für diese - es ist ein Standard-Teil von Javascript.

for(var key in myObject) { 
    alert(key); 
} 

Das sollte ausreichen, damit Sie das Objekt durchlaufen können. Aber wenn Sie möchten, um tatsächlich die Schlüssel in ihre eigenen Array zu erhalten (dh macht es zu einem echten Klon der PHP-Funktion), dann ist es ziemlich trivial ist den oben zu erweitern:

function array_keys(myObject) { 
    output = []; 
    for(var key in myObject) { 
     output.push(key); 
    } 
    return output; 
} 

Hinweis gibt es Einschränkungen bei der Verwendung von Die for(..in..) Technik für Objekte mit Eigenschaften oder Methoden, die Sie nicht einschließen möchten (z. B. Kernsystemeigenschaften), aber für ein einfaches Objekt, das Sie selbst oder aus einer JSON-Zeichenfolge erstellt haben, ist es ideal.

(Für weitere Informationen über die Einsprüche finden http://yuiblog.com/blog/2006/09/26/for-in-intrigue/)

1

In JavaScript gibt es keine solche wie assoziative Arrays. Objekte (Objektliterale) behandeln ähnliche Fälle.

var keys = [], i = 0;  
for(keys[ i++ ] in yourObject); 

Und jetzt keys enthält alle yourObject Eigenschaftsnamen (Schlüssel).