поиск подструктуры в массиве json данных
Имеется вот такой json-массив данных:
var haystack = [ { a:{ a1:1 ,a2:1 } ,b:{ b1:2 ,b2:2 } } ,{ a:{ a1:1 ,a2:1 } ,b:{ b1:2 ,b2:2 } },{ a:{ a1:13 ,a2:1 } ,b:{ b1:24 ,b2:2 } } ]; var needle = {a:{a1:13},b:{b2:2}} Стоит задача поиска по этому массиву. Но, искать нужно не по какому-нибудь конкретному полю, а, как бы по подструктуре члена массива json-данных. Т.е. нужная такая функция, назвем ее sortJsonArray. result_r = sortJsonArray(haystack,needle); При выполнении функции получим следующее result_r = [ { a:{ a1:13 ,a2:1 } ,b:{ b1:24 ,b2:2 } } ]; Помогите написать такую функцию. |
Обходим рекурсивно всё дерево haystack.
К каждому элементу применяем фукнцию сравнения структур, которая в свою очередь рекурсивно обходит needle и проверяет наличие каждого подэлемента needle с соответствующим подэлементом рассматриваемого элемента haystack. В случае совпадения добавляем элемент в результирующий массив, который в конце возвращаем. Ничего сложно в написании (правда, занимает время). |
zOdmin,
Цитата:
|
Цитата:
Так я же написал: Цитата:
Вообще странно, что здесь что-то оказалось не ясно, т.к. это самое лобовое решение, без изысканий. |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Часовой пояс GMT +3, время: 00:18. |