Ich habe ein Objekt, das aus einer Datenbank Aufruf in folgendem Format erstellt wird:Javascript/jQuery undefined Objektlänge
Object { group1={...}, same=null, group2=null}
Ich versuche, die Anzahl der Elemente in Gruppe 1 zu bekommen, Gruppe2, und gleich.
ich zugegriffen es über die Konsole wie folgt:
dataObj.group1.length
Im Bild oben, diese undefined zurück. Wenn ich jedoch mehr als ein Element in group1
habe, gibt es die Zählung in Ordnung zurück. Es scheint nur Probleme zu verursachen, wenn ein einzelnes Objekt im Objekt/Array vorhanden ist.
Gibt es eine Funktion, die verwendet werden kann, um diese Möglichkeiten zu berücksichtigen und die length
der Objekte in diesen Objekten zurückgeben?
Update:
Dies ist, wie ich meine Daten erschaffe:
success: function(data) {
// Define our data response
var d = data.data;
// Push our data to an object
dataObj = {
same: (d.same ? d.same.tools : null),
group1: (d.group1 ? d.group1.tools : null),
group2: (d.group2 ? d.group2.tools : null)
}
// Render our table
renderCompare();
}
Von hier versuche ich, die Menge des Artikels in same
, group1
, group2
zu bekommen.
Dies ist ein Beispiel für mehr als ein Element in der Antwort. Ich bin in der Lage, unter Verwendung dataObj.group1.length
darauf zuzugreifen, und es gibt 2
zurück, die richtig ist. Alles was ich versuche herauszufinden, wie man damit umgeht, gibt es nur 1
Ergebnis.
Ich bin verwirrt durch die Frage. Suchen Sie nach einer Möglichkeit, die Anzahl der Eigenschaften im Objekt zu zählen? – stackoverfloweth
Objekte haben keine Länge, also sollten Sie 'undefined' erhalten, unabhängig davon, wie viele Eigenschaften group1 hat, 1 oder anders. – Archer
@Archer Warum würde das funktionieren, wenn es zwei Elemente in der Gruppe1 gibt und dann ein einzelnes Objekt? – SBB