js 每日一更(数组转换成前端更容易解析的树状结构)

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html" />
        <meta name="keywords" content="数组转换成前端更容易解析的树状结构" />
        <meta name="description" content="数组转换成前端更容易解析的树状结构">
        <meta name="author" content="KG" />
        <meta charset="utf-8">
        <title>数组转换成前端更容易解析的树状结构</title>
    </head>
    <body>
        <script>
            var data = [{
                'province': '浙江',
                'city': '温州',
                'code':'10010'
            }, {
                'province': '浙江',
                'city': '杭州',
                'code':'10011'
            }, {
                'province': '安徽',
                'city': '合肥',
                'code':'10012'
            }, {
                'province': '安徽',
                'city': '马鞍山',
                'code':'10013'
            }, {
                'province': '浙江',
                'city': '宁波',
                'code':'10014'
            }];

            function toTree(data) {
                var newData=[],
                hash={};
                for(var i=0;i<data.length;i++){
                    if(!hash[data[i].province]){
                        hash[data[i].province]={
                            'province':data[i].province    
                        };
                        hash[data[i].province]['city']=[{
                            'name':data[i].city,
                            'code':data[i].code
                        }];
                        newData.push(hash[data[i].province]);
                    }else if(hash[data[i].province].province==data[i].province){
                        hash[data[i].province]['city'].push({
                            'name':data[i].city,
                            'code':data[i].code
                        })
                    }
                }
                return newData;
            }
            
            console.log(toTree(data));
        </script>
    </body>
</html>

 

posted @ 2020-04-13 22:00  KG-work-space  阅读(264)  评论(0编辑  收藏  举报