如何在angularjs中循环json对象

时间:2016-12-30 10:09:02

标签: javascript angularjs treeview

我正在使用我的角度项目中的树组件,我正在尝试循环一个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]
            }]
        }];
    }

我的问题是,我只获得了json对象中的最后一行{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}

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

4 个答案:

答案 0 :(得分:1)

您正在替换 imageView.setController(Fresco.newDraweeControllerBuilder() .setControllerListener(new ControllerListener<ImageInfo>() { @Override public void onSubmit(String id, Object callerContext) { } @Override public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) { } @Override public void onIntermediateImageSet(String id, ImageInfo imageInfo) { } @Override public void onIntermediateImageFailed(String id, Throwable throwable) { } @Override public void onFailure(String id, Throwable throwable) { } @Override public void onRelease(String id) { } }).build()); 中的先前值,而不是将新值添加到其中。你可以做的是,定义一个空数组treedata-avm并通过迭代你正在做的事情将treedata_avm中的每个对象推入其中。

myData

答案 1 :(得分:0)

 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]
        })
    }];
}

你应该使用数组功能&#39; push&#39;将对象推送到新数组;但不要使用&#39; =&#39;;

答案 2 :(得分:0)

试试这个:

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]
        }]
    });
}

使用.push()。会为你工作。

答案 3 :(得分:0)

您还可以使用map函数,该函数功能齐全且不易出错[{3}}

var treedata_avm = myData.map(function(value) {
    return {
        label: myData[i].secteur,
        children: [{
            label: myData[i].agence,
            children: [myData[i].serie]
        }]
    }
})