javascript按首字母分类问题

希望实现的效果: obj={A:['鞍山','安阳',...],B:['北京',...]}

 function charClass(data){
                var obj={};
                if(data.length===0) return;
                for(var i=0;i<data.length;i++){
                    obj[$PinYin.searchCap(data[i])]=data[i];
                }
                return obj;
            }

data:是地区数组数据
$PinYin.searchCap(): 是获取首字母的方法

没有C币 >_<

我自己摸出来了,这问题也可以看成对象里添加对象或数组
下面是改进的方法 啦啦啦~

 function charClass(data){
                var obj=[];
                if(data.length===0) return;
                for(var i=0;i<data.length;i++){
                    if(!obj[$PinYin.searchCap(data[i])]){
                        obj[$PinYin.searchCap(data[i])]=[];
                    }
                    obj[$PinYin.searchCap(data[i])].push(data[i]);
                }
                return obj;
            }

楼上居然发英文网站 >_< 本屌表示看不懂

http://stackoverflow.com/questions/7567301/javascript-group-by-array-content

http://stackoverflow.com/questions/6781722/fast-grouping-of-a-javascript-array