поиск подструктуры в массиве 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, время: 14:37. |