2017-01-13 1 views
-1

Ich habe ID und Beschreibung in Array:Wie wähle ich einzelnes Element aus Array mit jQuery?

var tablica = [{"3":"asdasd asd"},{"19":"asddas fff"},{"111111":"adas asf asdff ff"},{"4":"re"},{"5":"asdasd"},{"6":"we"},{"7":"asdasdgg"},{"9":"asdasdasd"},{"16":"sdads"},{"10":"asdgg"},{"11":"ggg"}];

Wie einzelne Beschreibung für ID mit jQuery oder JavaScript wählen?

+1

Wo ist der 'ID' zu bekommen? – Satpal

+0

@Satpal Ich bin mir sicher, OP bedeutet in '{" 3 ":" asdasd asd "}', '3' ist' id'. – Rajesh

+0

erstes Element in jedem Array (3, 19, 3, 4 usw.) – GSMX

Antwort

-1

Nun, es ist ein wenig kompliziert, da Sie haben eine Array von Objekten

Sie könnten das gesamte Array analysieren und für jedes Objekt darin, ob es das wollte Schlüssel:

var tablica = [{"3":"asdasd asd"},{"19":"asddas fff"},{"3":"adas asf asdff ff"},{"4":"re"},{"5":"asdasd"},{"6":"we"},{"7":"asdasdgg"},{"9":"asdasdasd"},{"16":"sdads"},{"10":"asdgg"},{"11":"ggg"}]; 
 

 
var wantedId = "3"; // the ID you actually search 
 
var wantedObj; 
 

 
tablica.map(function(obj) { 
 
    if (wantedId in obj) { 
 
     wantedObj = obj; 
 
    } 
 
}); 
 

 
console.log(wantedObj);

Auf jeden Fall sollten Sie Ihre Datenstruktur beheben: jedes Objekt Ihrer Array eine Eigenschaft id und eine propert haben sollte y value (oder so ähnlich)

var tablica = [ 
    { 
     id: "3", 
     value: "asdasd asd" 
    }, 
    { 
     id: "19", 
     value: "asddas fff" 
    } 
]; 
+1

Erstens, die Verwendung von '.map' ohne' return' ist nur eine Funktionalität verschwenden. Zweitens würde ich lieber 'filter' oder' find' verwenden, da die Suche genau das ist, wofür sie gedacht sind.Drittens ** sollten Sie ** keine doppelte Frage beantworten. – Rajesh

1

mit es6,

var tablica = [{"3":"asdasd asd"},{"19":"asddas fff"},{"3":"adas asf asdff ff"},{"4":"re"},{"5":"asdasd"},{"6":"we"},{"7":"asdasdgg"},{"9":"asdasdasd"},{"16":"sdads"},{"10":"asdgg"},{"11":"ggg"}]; 
 

 
var res = tablica.filter(x=> x["3"]) 
 
console.log(res);

+0

Bitte beantworten Sie keine Duplikate. Zweitens wird Ihre Lösung für Fälle fehlschlagen, in denen der Wert von x ["3"] falsch ist. – Rajesh

+0

@Rajesh OP sagte: „Ich habe ID und eine Beschreibung in dem Feld“, so klar Beschreibung Wert, so kann ich davon ausgehen, dass es in der Beschreibung sehr sehr selten Wahrscheinlichkeit falsch sein wird. zweitens, wenn u denken es ist wirklich duplizieren dann bitte diese Frage mit doppelten Fragezeichen, von denen es Überschneidungen ist, dass man nicht eindeutig war. –

+0

@Rajesh gleiche ich mit Ihrem Kommentar fühlen, lassen Sie es mich wissen, wenn es eine dup ist. Frage, ich werde es markieren Sie –

1

Während Sie doppelte Schlüssel in den Objekten haben, schlage ich vor Array#filter dafür verwenden und später die Objektinformationen benötigen Sie.

var data = [{ 3: "asdasd asd" }, { 19: "asddas fff" }, { 3: "adas asf asdff ff" }, { 4: "re" }, { 5: "asdasd" }, { 6: "we" }, { 7: "asdasdgg" }, { 9: "asdasdasd" }, { 16: "sdads" }, { 10: "asdgg" }, { 11: "ggg" }], 
 
    key = 3, 
 
    result = data.filter(function (o) { 
 
     return key in o; 
 
    }); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

Bitte nicht duplicates.I beantworten weiß, seine nicht exakt duplizieren, aber wenn OP erwägt '3' als ID, seine besser bessere Datenstruktur vorzuschlagen' { ‚id‘: 3, Wert : ...} 'und dann wird es genau dupliziert. – Rajesh

1

Ich denke, der beste Weg für das Objekt dieses Array umwandeln, wo der Schlüssel für die Beschreibung ID sein. Dadurch müssen Sie nicht jedes Mal suchen, wenn Sie eine Beschreibung suchen möchten. Erst wenn Sie das Objekt vorbereiten und später haben Sie einen einfachen und schnellen Zugriff auf die Beschreibung.

Zum Beispiel:

var tablica = [{"3":"asdasd asd"},{"19":"asddas fff"},{"3":"adas asf asdff ff"},{"4":"re"},{"5":"asdasd"},{"6":"we"},{"7":"asdasdgg"},{"9":"asdasdasd"},{"16":"sdads"},{"10":"asdgg"},{"11":"ggg"}]; 
 
var obj = {}; 
 
tablica.forEach(function(el){ 
 
    var id = Object.keys(el)[0]; 
 
    obj[id] = el[id]; 
 
}); 
 

 
console.log(obj['5']);

Nun, wenn Sie eine Beschreibung ID = 5, können Sie einen einfachen Zugang für sie obj['5']

+0

Bitte beachten Sie, dass Sie keine Duplikate beantworten sollten. – Rajesh

+0

@Rajesh Duplikat? Ich sehe nicht, simillar Antwort ... –

+0

Siehe Ausführungen unter Frage oder auf Ninas Antwort – Rajesh

Verwandte Themen