我有一个嵌套对象的数组(用它来填充我的树),类似于下面的示例:
var obj1= {
text: "TreeRoot",
items: [ {
text: "subgroup1" ,
items: [ {
text: "subgroup2",
items: [ {
text: "subgroup3",
items: [ {
text: "subgroup4",
items: [ {
text: "subgroup5"
}]
}]
}]
}]
}]
};
var obj2 = {
text: "TreeRoot",
items: [ {
text: "subgroup1" ,
items: [ {
text: "subgroup2",
items: [ {
text: "subgroup3",
items: [ {
text: "subgroup4",
items: [ {
text: "subgroup5"
}]
}]
}]
}]
}]
};
var obj3= {
text: "TreeRoot",
items: [ {
text: "subgroup1" ,
items: [ {
text: "subgroup2"
}]
}]
}]
};
var finalArray=[];
finalArray.push(obj1);
finalArray.push(obj2);
finalArray.push(obj3);
现在我需要使用文本从我的最终数组中删除重复的对象(即,我应该从我的数组中删除obj2)...
这是我尝试过的方法...
var arr = {};
for ( var i=0; i < finalPath.length; i++ )
arr[finalArray[i]['text']] = finalArray[i];
finalArray= new Array();
for ( key in arr )
finalArray.push(arr[key]);
请问有什么最好的方式吗?
编辑:
我认为下面的解决方案可行,但还需要完全测试它...
var arr = {};
for ( var i=0; i < finalArray.length; i++ ){
if(finalArray[i].items){
for(var j=0;j<finalArray[i].items.length;j++){
arr[finalArray[i].items[j]['text']] = finalArray[i];
}
}else{
arr[finalArray[i]['text']] = finalArray[i];
}
}
finalArray= new Array();
for ( key in arr )
finalArray.push(arr[key])
感谢您,Barani。