求一个数组按属性分组的方法

var arr = [

{city: "上海", location: "浦东"},
{city: "上海", location: "静安"},
{city: "北京", location: "内环"},
{city: "北京", location: "五环"},
{city: "苏州", location: "苏州"},

];

arr按city分组的方法,谢谢!

返回一个数组
[
{city:"",location:[]}
]

阅读 8.6k
评论 更新于 2016-04-15
    6 个回答

    在处理这种结构的时候,感觉就有点给自己找麻烦。
    自己都觉得处理起来比较麻烦的时候,就可以思考一下有什么方法可以更好的解决,何必写程序来难为自己呢。

    以上内容为玩笑,勿介意。

    下面提供一种处理方案:

    function getCityData(data){
       var res={};
        for(var i=0;i<data.length;i++){
            var d=data[i];
            var city=d['city'];
            res[city]=res[city]||[];
            res[city].push(d);
        }
        //
        return res;
    }
    

    只是提供一种思路,非最终解决方案!

    评论 赞赏 2016-04-15