<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<ul , isParent: true }
];
function log(a) {
console.log(a);
}
function transformTozTreeFormat(sNodes) {
var i, l,
key = "id",
parentKey = "pId",
childKey = "child";
if (!key || key == "" || !sNodes) return [];
var r = [];
var tmpMap = [];
for (i = 0, l = sNodes.length; i < l; i++) {
tmpMap[sNodes[i][key]] = sNodes[i];
}
for (i = 0, l = sNodes.length; i < l; i++) {
if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
if (!tmpMap[sNodes[i][parentKey]][childKey])
tmpMap[sNodes[i][parentKey]][childKey] = [];
tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
} else {
r.push(sNodes[i]);
}
}
log(r);
return r;
}
function createHTML(ay, level) {
var html = [];
for (var i = 0, j = ay.length; i < j; i++) {
var chtml = [], isParent = false;
if (ay[i]["child"] && ay[i]["child"].length > 0) {
isParent = true;
chtml = arguments.callee(ay[i]["child"], level + 1);
}
html.push("<li>");
html.push(ay[i]["name"]);
if (isParent) {
html.push("<ul>" + chtml.join("") + "</ul>");
}
html.push("</li>");
}
return html;
}
var html = createHTML(transformTozTreeFormat(zNodes), 0).join("");
$("#test").append(html);
</script>
</body>
</html>