Javascript 如何在angularjs中循环json对象

Javascript 如何在angularjs中循环json对象,javascript,angularjs,treeview,Javascript,Angularjs,Treeview,我在angular projet中使用tree组件,我尝试循环一个json对象来填充树,下面是我的代码: var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","se

我在angular projet中使用tree组件,我尝试循环一个json对象来填充树,下面是我的代码:

 var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":"CZC145YL3"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AU2290Y48"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}];
    for(var i=0; i < myData.length; i++) {
       // alert('roro '+myData[i].secteur);
        treedata_avm = [{
            label: myData[i].secteur,
            children: [{
                label: myData[i].agence,
                children: [myData[i].serie]
            }]
        }];
    }
var myData=[{“代理”:“CTM”,“部门”:“Safi”,“系列”:“CZC1448YZN”},{“代理”:“CTM”,“部门”:“Safi”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Safi”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Essaouira”,“系列”:“CZC1221B85”},{“代理”:“CTM”,“部门”:“Essaouira”,“系列”:“CZC1285”},{“市政部门”:“CIPAC“Essaouira”、“serie”:“CZC145YL3”},{“代理”:“卡萨布兰卡大道”、“部门”:“卡萨布兰卡”、“serie”:“2AU2290Y48”},{“代理”:“卡萨布兰卡大道”des FAR CTM;“部门”:“卡萨布兰卡”、“serie”:“2AUD14404X”};
对于(var i=0;i
我的问题是,我只得到json对象中的最后一行,即
{“agence”:“Gare Routiere Avenue des FAR CTM”,“secteur”:“Casablanca”,“serie”:“2AUD14404X”}


如何获取树中显示的所有数据?

您正在替换
treedata avm
中以前的值,而不是将新值添加到树中。您可以做的是,定义一个空数组
treedata_avm
,并通过迭代将
myData
中的每个对象推入其中

var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":"CZC145YL3"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AU2290Y48"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}]; 

var treedata_avm = [];

for(var i=0; i < myData.length; i++) {
   // alert('roro '+myData[i].secteur);
    treedata_avm.push({
        label: myData[i].secteur,
        children: [{
            label: myData[i].agence,
            children: [myData[i].serie]
        }]
    });
}
console.log(treedata_avm);
var myData=[{“代理”:“CTM”,“部门”:“Safi”,“系列”:“CZC1448YZN”},{“代理”:“CTM”,“部门”:“Safi”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Safi”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Essaouira”,“系列”:“CZC1221B85”},{“代理”:“CTM”,“部门”:“Essaouira”,“系列”:“CZC1285”},{“市政部门”:“CIPAC“Essaouira”、“serie”:“CZC145YL3”},{“代理”:“卡萨布兰卡大道”、“部门”:“卡萨布兰卡”、“serie”:“2AU2290Y48”},{“代理”:“卡萨布兰卡大道”des FAR CTM;“部门”:“卡萨布兰卡”、“serie”:“2AUD14404X”};
var treedata_avm=[];
对于(var i=0;i
var myData=[{“代理”:“CTM”,“部门”:“Safi”,“系列”:“CZC1448YZN”},{“代理”:“CTM”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Safi”,“系列”:“2UA13817KT”},{“代理”:“CTM”,“部门”:“Essaouira”,“系列”:“CZC1221B85”},{“代理”:“CTM”,“部门”:“Essauira”,“serie”:“CZC1221B85”{,“部门”:“Essaouira”、“serie”:“CZC145YL3”},{“代理”:“卡萨布兰卡大道”、“部门”:“卡萨布兰卡”、“serie”:“2AU2290Y48”},{“代理”:“卡萨布兰卡大道”、“serie”:“2AUD14404X”};
var treedata_avm=[];
对于(var i=0;i
您应该使用数组函数“push”将对象推送到新数组;但不要使用“=”;

尝试以下方法:

var treedata_avm = [];
for (var i = 0; i < myData.length; i++) {
    treedata_avm.push({
        label: myData[i].secteur,
        children: [{
            label: myData[i].agence,
            children: [myData[i].serie]
        }]
    });
}
var treedata_avm=[];
对于(var i=0;i

使用
.push()
。将对您有效。

您还可以使用map函数,该函数功能强大,不易出错


使用
angular.forEach(jsonObject,函数(singleObject,key){//logic})
工作正常。请在浏览器控制台中复制并粘贴相同的代码并进行检查。请..另一个问题..我的树中有一个重复的数据..有没有办法在json对象中按扇区分组您可以检查循环中的重复项避免将其推入数组中,或者要获得更简单的解决方案,请使用具有许多me的lodash库这类操作的方法不..我会像那样丢失..我想在我的json对象中按扇区分组..这正是我想要的帮助..然后你可以使用
.groupBy
方法
var treedata_avm = [];
for (var i = 0; i < myData.length; i++) {
    treedata_avm.push({
        label: myData[i].secteur,
        children: [{
            label: myData[i].agence,
            children: [myData[i].serie]
        }]
    });
}
var treedata_avm = myData.map(function(value) {
    return {
        label: myData[i].secteur,
        children: [{
            label: myData[i].agence,
            children: [myData[i].serie]
        }]
    }
})