Javascript 需要从json记录集形成树json
我使用angularjs作为前端,nodejs作为服务提供者。NodeJ将数据发送到JSON对象中的angularjsJavascript 需要从json记录集形成树json,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我使用angularjs作为前端,nodejs作为服务提供者。NodeJ将数据发送到JSON对象中的angularjs $scope.data = [ {"id": 53,"title": "Scene 1","sc_parentnodes": 0}, {"id": 54,"title": "Scene 1.1","sc_parentnodes": 53}, {"id": 55,"title": "Sc
$scope.data =
[
{"id": 53,"title": "Scene 1","sc_parentnodes": 0},
{"id": 54,"title": "Scene 1.1","sc_parentnodes": 53},
{"id": 55,"title": "Scene 1.2","sc_parentnodes": 53},
{"id": 56,"title": "Scene 2","sc_parentnodes": 0},
{"id": 57,"title": "Scene 2.1","sc_parentnodes": 56},
{"id": 58,"title": "Scene 2.2","sc_parentnodes": 56}
]
但我需要以下面的格式绑定angular ui treetable上的数据
$scope.data = [
{ "id": 53,
"title": "Scene 1",
"sc_parentnodes":
[
{"id": 54,"title": "Scene 1.1","sc_parentnodes": []},
{"id": 55,"title": "Scene 1.2","sc_parentnodes": []}
]
},
{ "id": 56,
"title": "Scene 2",
"sc_parentnodes": [
{"id": 57,"title": "Scene 2.1","sc_parentnodes": []},
{"id": 58,"title": "Scene 2.2","sc_parentnodes": 56}
]
}
]
在jquery或angularjs中是否有任何预定义的库/函数来框显树结构。尝试以下方法:
$.each($scope.data,function(index1,val1) {
$.each($scope.data,function(index,val) {
if(val.id == val1.sc_parentnodes && val1.sc_parentnodes!=0 ) {
array.push($scope.data[index]);
}
}
val1.sc_parentnodes = array;
})
您可以使用普通JavaScript中的两个循环来实现这一点。第一个循环将用2个条目填充基本数组。第二个将使用原始()数组中的项填充基本数组中的
sc_parentnodes
节点。我相信有很多更好/更紧凑的方法可以做到这一点,但是,这是我可以很快想到的。希望这有帮助
var数据=[
{“id”:53,“标题”:“场景1”,“sc_parentnodes”:0},
{“id”:54,“标题”:“场景1.1”,“sc_parentnodes”:53},
{“id”:55,“标题”:“场景1.2”,“sc_parentnodes”:53},
{“id”:56,“标题”:“场景2”,“sc_parentnodes”:0},
{“id”:57,“标题”:“场景2.1”,“sc_parentnodes”:56},
{“id”:58,“标题”:“场景2.2”,“sc_父节点”:56}
];
var_数据=[];
//回路1
data.forEach(函数(val,ind){
if(val.sc_parentnodes==0){
_数据推送({
“id”:val.id,
“标题”:val.title,
“sc_父节点”:[]
});
}
});
var len=_data.length;
//环路2
len&(data.forEach)(函数(val,ind){
对于(变量i=0;i console.log(JSON.stringify(_data,null,4))代码>否,必须以所需格式构造数据。**
的作用是什么?它们破坏了你的json,是语法错误。我只想突出显示(粗体)元素。哦,明白了。不能在代码块中使用。