Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / "Плоские" данные к структурированным / 3 сообщений из 3, страница 1 из 1
31.01.2013, 16:15
    #38132602
Zick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Плоские" данные к структурированным
Доброго времени.
Имеется следующий массив объектов:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
var flat = [
{ id: 1, parent_id: null }, 
{ id: 2, parent_id: 1 }, 
{ id: 3, parent_id: 1 }, 
{ id: 4, parent_id: 2 }, 
...
];



Необходимо преобразовать в следующий вид:

Код: javascript
1.
2.
3.
4.
var hierarchy = [ 
{ id: 1 parent_id: null, childs: [{ id: 2, parent_id: 1, childs: [{ id: 4, parent_id: 2 }] }, 
                                         { id: 3, parent_id: 1 }] }, ... 
];
...
Рейтинг: 0 / 0
31.01.2013, 16:37
    #38132627
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Плоские" данные к структурированным
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
var flat = [
{ id: 1, parent_id: null }, 
{ id: 2, parent_id: 1 }, 
{ id: 3, parent_id: 1 }, 
{ id: 4, parent_id: 2 }
];

function searchChildren(parent_id) {
    var result = [],
        i;
    for (i = flat.length - 1; i >= 0; i -=1) {
        if (flat[i].parent_id === parent_id) {
            result.push(flat[i]);
        }
    }
    return result;
}

function recur(item) {
    var result = { id: item.id, parent_id: item.parent_id, children: [] },
        items = searchChildren(item.id),
        i;
    for (i = items.length - 1; i >= 0; i -=1) {
        result.children.push(recur(items[i]));
    }
    return result;
}

alert(JSON.stringify(recur(searchChildren(null)[0])));

http://jsfiddle.net/bRkw3/
...
Рейтинг: 0 / 0
31.01.2013, 16:40
    #38132634
Zick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
"Плоские" данные к структурированным
Паганель, спасибо ;)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / "Плоские" данные к структурированным / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]