Mam obiekt javascript, a ja chcę
rekursywnie
wyszukać go, aby znaleźć wszelkie właściwości, które zawierają określoną wartość.Wyszukaj obiekt javascript dla właściwości o określonej wartości?
Javascript, z którym pracuję, został zminimalizowany i nie jest tak łatwy do prześledzenia.
Tło
Używam Bing Maps AJAX SDK. Ma możliwość dodawania dodatkowych warstw kafli. Każdy tilelayer ma obiekt tileworks, który określa format URI dla adresu URL kafli.
Wystąpił problem polegający na tym, że identyfikator URI źródła jest tworzony raz i przechowywany w pamięci podręcznej. Dlatego nie mogę dynamicznie zmieniać parametrów adresu URL (na przykład, aby zmienić kolory nakładki kafelkowej na podstawie pory dnia) dla każdego żądania.
Należy zauważyć, że to zachowanie różni się od interfejsu API Map Google i api Bing Maps dla WP7, które umożliwiają dynamiczne tworzenie adresów URL dla każdego żądania płytki.
Zbuforowany identyfikator URI jest wyszukiwany, a dwa określone parametry są zastępowane, a następnie URI służy do pobrania kafelka.
Ponieważ jest to javascript, chciałbym znaleźć buforowany identyfikator URI i zastąpić go funkcją, która zamiast tego dynamicznie buduje identyfikator URI i zwraca go.
Nie muszę tego robić w każdym środowisku uruchomieniowym, chcę tylko wiedzieć, gdzie jest przechowywana właściwość, więc mogę napisać kod do hax0r.
oryginalne pytanie
Jeżeli ustawić URI do pewnej wartości jak „floobieblaster”, kiedy ustawić punkt przerwania, mogę poszukać obiektu javascript rekurencyjnie dla „floobieblaster” i dostać tę właściwość, że jest przechowywanie że wartość?
Edytuj, aby dodać
Przedmiotem Szukam wydaje się mieć odwołanie cykliczne, więc każdy kod rekurencyjne prawdopodobnie spowoduje stackoverflow.
Czy są jakieś sztuczki edytora/debuggera, z których mógłbym skorzystać?
myślę, że mogę potencjalnie zrzucić się obiekt JSON i szukać w ten sposób. Być może jest lepszy sposób? - Nie. Wygląda na to, że obiekt ma okrągłą strukturę. – Alan
Biblioteka Crockforda (patrz cykl.js) https://github.com/douglascrockford/JSON-js obsługuje kodowanie i dekodowanie okrągłych obiektów w json (+ ścieżka jsonpath). Możesz serializować i wyszukiwać, jak sugerujesz, lub po prostu nieznacznie zmienić kod, aby osiągnąć cel bezpośrednio. – davin