2017-07-27 2 views
2

enter image description here Hallo Ich habe Probleme mit dem Zugriff auf Objekt in Array ... Ich weiß nicht, ist es, weil ich Chrome aktualisiert oder weil ich hinzugefügt, und nachdem Preact aus meiner React-Anwendung entfernt. Problem ist folgendes:Zugriff auf einzelnes Objekt in Array nicht möglich?

Stichworte ist Array von Objekten:

var fullTag = tags.filter(tag => tag.tagId==tagId); 
console.log(fullTag); 

Und als Ergebnis bekomme ich diese in der Konsole:

[{…}] 

Wenn ich es erweitern bekomme ich diese: (Bild)

So gibt es keine Möglichkeit, darauf zuzugreifen, außer mit

console.log(Object(fullTag[0]).tag); 

Auf alle anderen Arten werde ich undefiniert ... Warum ist das ?! Ich kann schwören, dass ich bis gestern mit fullTag.tag darauf zugreifen konnte ... Kann mir bitte jemand erklären?

+0

Nun Ihr Bild zeigt, dass es ein Array ist, das ist, warum Sie nicht ihre Mitglieder zugreifen können. – jdmdevdotnet

+2

* Ich kann schwören, dass ich bis gestern mit fullTag.tag darauf zugreifen konnte * - es sei denn, dein Code war gestern anders, nein. – tymeJV

Antwort

1

Die Methode filter() erstellt ein neues Array mit allen Elementen, die den Test bestehen, der von der bereitgestellten Callback-Funktion implementiert wurde.

So, nachdem Sie filter ein array, erhalten Sie eine weitere array auch erhalten, wenn es nur eine item, die die test Funktion übergeben ist. Deshalb können Sie unter fullTag.tag nicht darauf zugreifen.

Die Lösung besteht darin, mit der index auf ein Element zuzugreifen.

let tags=[{"id":1,"tag":"tag1"},{"id":2,"tag":"tag2"}]; 
 
let tagId=1; 
 
var fullTag = tags.filter(tag => tag.id==tagId); 
 
console.log(fullTag); 
 
console.log(Object(fullTag[0]).tag);

Wenn tagId Eigenschaft in Ihrem Array einzigartig ist, können Sie find Methode verwenden.

var fullTag = tags.find(tag => tag.id==tagId); 

Jetzt können Sie Ihre tag Eigenschaft auf diese Weise Zugriff Sie wished.

console.log(fullTag.tag); 
+0

habe nicht an die Callback-Funktion des Filters gedacht ... danke ... – Ivan

+0

@Ivan, vielleicht hast du 'find' Methode benutzt. –

+0

Ich nehme an, dass die TagId in Ihrem Array einzigartig ist..so, Sie können es wie in meiner Antwort verwenden. –

Verwandte Themen