对于树的操作是平时用的最多的,任何操作都基于树的遍历。树的遍历有先序,中序,后序。我用的最多的就是先序遍历,现在我们就如下的数据结构说一下先序遍历是怎么操作树的。
我们现在的需求是去除LabelWithNum长度为0的父元素:
//按专题展示下去除没有标签的节点
function removeNoneTag(data) {
for (var i = 0, len = data.length; i < len; i++) {
var secondData = data[i].StudyGroupWithTagNums;
if (!!secondData && secondData.length > 0) { //如果有子专题则继续向下遍历,如果没有直接判断该专题下有没有标签
var temp = removeNoneTag(secondData);
if (!!temp && temp.length == 0) {
if (data[i].LabelWithNum.length == 0) {
data.splice(i, 1);
len = data.length;
i -= 1;
}
}
} else {
if (data[i].LabelWithNum.length == 0) {
data.splice(i, 1);
len = data.length;
i -= 1;
}
}
}
return data;
}
这样我们拿到的结果就是去除LabelWithNum长度为0的元素集合。
以上是我的做法,大家有可优化的地方欢迎指出。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。