鍍金池/ 問答/數(shù)據(jù)分析&挖掘  HTML/ js 如何將數(shù)組重復(fù)元素歸類組裝成樹形結(jié)構(gòu)

js 如何將數(shù)組重復(fù)元素歸類組裝成樹形結(jié)構(gòu)

現(xiàn)在有數(shù)據(jù)如下所示:

var _arr = [{'area':'北京','name':'劉德華'},{'area':'西安','name':'小明'},{'area':'德國','name':'小紅'},{'area':'德國','name':'小李'},{'area':'東北','name':'小趙'},{'area':'東北','name':'小華'}];  

希望將數(shù)據(jù)重新組裝成

var _arr = [{'area':'北京','name':['劉德華']},{'area':'西安','name':['小明']},{'area':'德國','name':['小紅','小李']},{'area':'東北','name':['小趙','小華']}];  

也就是對area進行判斷 如果area相同,將名字歸入到同一個數(shù)組,求方法。

回答
編輯回答
帥到炸

處理數(shù)組、對象數(shù)據(jù)的思路很重要,一般手段是遞歸,或者借助第3個變量來完成遍歷,還可以利用對象key值不重復(fù)的原理做很多事情。

2017年2月13日 00:37
編輯回答
大濕胸

用map就行

let m = {}
for(let i = 0; i< _arr.length; i++){
    let t = _arr[i]
    if(!m[t.area]){
        m[t.area] = []
    }
    m[t.area].push(t.name)
}

let arr = []
for(let key in m){
    arr.push({ area: key, name: m[key] })
}
2017年1月7日 15:39