js 如何将数组重复元素归类组装成树形结构

现在有数据如下所示:


var _arr = [{'area':'北京','name':'刘德华'},{'area':'西安','name':'小明'},{'area':'德国','name':'小红'},{'area':'德国','name':'小李'},{'area':'东北','name':'小赵'},{'area':'东北','name':'小华'}];

希望将数据重新组装成


var _arr = [{'area':'北京','name':['刘德华']},{'area':'西安','name':['小明']},{'area':'德国','name':['小红','小李']},{'area':'东北','name':['小赵','小华']}];

也就是对area进行判断 如果area相同,将名字归入到同一个数组,求方法。


智慧大石
浏览 944回答 2
2回答

精慕HU

用map就行let m = {}for(let i = 0; i< _arr.length; i++){&nbsp; &nbsp; let t = _arr[i]&nbsp; &nbsp; if(!m[t.area]){&nbsp; &nbsp; &nbsp; &nbsp; m[t.area] = []&nbsp; &nbsp; }&nbsp; &nbsp; m[t.area].push(t.name)}let arr = []for(let key in m){&nbsp; &nbsp; arr.push({ area: key, name: m[key] })}

婷婷同学_

处理数组、对象数据的思路很重要,一般手段是递归,或者借助第3个变量来完成遍历,还可以利用对象key值不重复的原理做很多事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript