var data= {
a: { one: 1, two: 2, three: {four:'2',five:'4'} },
b: { six: 4, seven: 5, eight: 6 },
c: { nine: 7, ten: 8}
}
function traverse(obj) {
for (var a in obj) {
if (typeof(obj[a]) == "object") {
traverse(obj[a]); //递归遍历
} else {
console.log(a + "=" + obj[a]); //如果是值就显示
}
}
}
traverse(data)
JS使用递归删除children中长度为空的数组
IterationDelateMenuChildren = (arr) => {
if (arr.length) {
for (let i in arr) {
if (arr[i].children.length) {
this.IterationDelateMenuChildren(arr[i].children)
} else {
delete arr[i].children;
}
}
}
return arr
}
vue使用递归删除children中长度为空的数组
// 去除为children空数组
traverse(arr) {
if(arr.length){
arr.forEach(item => {
if (item.children.length) {
this.traverse(item.children); //递归遍历
} else {
delete item.children;//如果是值就显示
}
});
}
return arr
},
//模型类别列表
findType(){
var vm = this;
request.get("http://192.168.2.177:8080/type/typeParent")
.then(function(response) {
if (response.data.code == 200) {
vm.modeType=vm.traverse(response.data.data)
console.log( vm.modeType,"vm.traverse(response.data.data)")
}
})
.catch(function(error) {
console.log(error);
});
},
traverse(arr,num) {
if(arr.length){
arr.forEach(item => {
if(item.label.id==num){
idArr.push(item.label.id)
idArrBox=idArr
}
Vue.set(item,"name",item.label.name)
Vue.set(item,"id",item.label.id)
if (item.children.length) {
idArr.push(item.label.id)
this.traverse(item.children,num); //递归遍历
} else {
idArr=[]
delete item.children;//如果是值就显示
}
});
}
return arr
},
this.traverse(this.typeChoose,scope.number)
// 模型选择器赋值 去除为children空数组
traverse(arr,value) {
if(arr.length){
arr.forEach(item => {
Vue.set(item,"name",item.label.name)
Vue.set(item,"id",item.label.id)
if (item.hasOwnProperty("children")&&item.children.length) {
idArr.push(item.label.id)
this.traverse(item.children,value);
} else {
if(idArr.length!=0){
idArrBox=[...idArr]
}
idArr=[]
if(!library.isNull(item.label.modelStorageId)){
if(item.label.modelJsonList[0].guid===value){
idArrBox.push(item.label.id)
this.modelArr.push(idArrBox)
return
}
}
//禁用模型类别
if(!item.label.modelStorageId){
Vue.set(item,"disabled",true)
}
delete item.children;
}
});
}
return arr
},