powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / "Плоские" данные к структурированным
3 сообщений из 3, страница 1 из 1
"Плоские" данные к структурированным
    #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
"Плоские" данные к структурированным
    #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
"Плоские" данные к структурированным
    #38132634
Фотография Zick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, спасибо ;)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / "Плоские" данные к структурированным
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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