2016-04-16 7 views
0

ich eine wenig Erfahrung in Javascript und in der Regel fand ich Lösung für meine Probleme nur durch hier oder mit Google-Suche, aber dieses Mal, ich fühle, dass ich den falschen WegJavascript multidimensionalen Array zuzugreifen, ohne alle Schlüssel zu wissen,

nahm

Ich habe ein Objekt (multidimensionales assoziatives Array) wie folgt aufgebaut: state ["a"] ["b"] ["c"] = "idle";

Wenn ich "a" und "c" kenne, aber nicht "b", kann ich den Wert "idle" ändern, ohne die einzelnen Tasten zu durchlaufen? unter Berücksichtigung, dass "c" ist einzigartig im gesamten Objekt

So etwas wie: state ["a"] [*] ["c"] = "beschäftigt";

Vielen Dank im Voraus für Ihre Hilfe

+2

Nein, Sie können nicht, und wenn Sie die Schlüssel nicht wissen, wie können Sie versichern, dass sie einzigartig sein sollen? Sie müssen einen Baum-Parser schreiben, der höchstwahrscheinlich eine Rekursion verwendet. Abhängig davon, welche Umgebung/welchen Browser Sie unterstützen, können Sie Object.keys oder "for in" -Schleife verwenden –

+0

Sie wissen also: Es gibt keine "multidimensionalen" Strukturen in JS. Sie sind einfach verschachtelte Objekte/Arrays. – Andy

+0

Ich weiß, dass Schlüssel einzigartig ist, wie ich das Objekt mit einigen Daten erstellen, aus denen Wert nicht doppelt vorhanden sein kann! Gerade in der aktuellen Funktion wird "b" weder benutzt noch bekannt ... Schade, ich werde mit Object.keys schleifen ... Danke – ericc

Antwort

1

Wenn „c“ nur an einer Stelle existiert, wie Sie gesagt haben, müssen Sie dann durch die Elemente in der zweiten Dimension Schleife für einen suchen, der eine hat dritte Dimension mit einem Index von "c".

+0

Genau das möchte ich vermeiden :-) – ericc

Verwandte Themen