0

オブジェクトに位置属性を追加する必要がある JavaScript 関数があります。

function conv(data){
var result=[];
function dfs(node, parent) {
    for(var i in node){
        result.push({id:node[i].id,pid:parent});
        if (node[i]['children']) dfs(node[i]['children'],node[i]['id']);
    }
}
dfs(data, 0);
return result;
}

デモ

だから私は結果を得た=[{"id":1,"pid":0},{"id":4,"pid":1},{"id":2,"pid":0}]

次のような位置を追加する必要があります。

[
{"id":1,"pid":0,"position":100}, // First root
{"id":4,"pid":1,"position":100}, // First sub root
{"id":5,"pid":1,"position":101}, // Second sub root
{"id":2,"pid":0,"position":101}, // Second root
{"id":3,"pid":0,"position":102}, // Third root
]

アップデート

位置は常に 100 から始まるため、その変数は静的にすることができます。

4

1 に答える 1

2

詳細情報がなければ、配列内positionのオブジェクトにを追加するだけでよいようです:push

result.push({id:node[i].id,pid:parent,position:position});

デモ

于 2013-10-12T07:48:53.997 に答える