添加属性到javascript函数

时间:2013-10-12 07:39:23

标签: javascript json function

我有需要在对象上添加位置属性的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;
}

DEMO

所以我得到了结果= [{"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开始,因此其var可以是静态的。

1 个答案:

答案 0 :(得分:2)

如果没有进一步的信息,您似乎只需要将position添加到数组中push的对象:

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

Demo