原数据结构:var res =[ 0:{id: "1", letter: "D", name_cn: "大学名字"} 1:{id: "2", letter: "A", name_cn: "大学名字"} 2:{id: "3", letter: "C", name_cn: "大学名字"} 3:{id: "3", letter: "D", name_cn: "大学名字"}
]要实现的数据结构: schoolList: [
{ letter: 'A', data: [
{name_cn:'大学名字'},
{name_cn:'大学名字'}
]
},
{ letter: 'B', data: [
{name_cn:'大学名字'}
{name_cn:'大学名字'}
]
},
{ letter: 'C', data: [
{name_cn:'大学名字'}
{name_cn:'大学名字'}
]
}
]怎么将res这个数组里面的letter,按照首字母分类。将首字母为一样的全部重新组成新的数组,然后放在schoolList这个数组里面。
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
暂时想到这种稍微复杂点的方法
var res =[ {id: "1", letter: "D", name_cn: "大学名字5"}, {id: "2", letter: "A", name_cn: "大学名字4"}, {id: "4", letter: "C", name_cn: "大学名字3"}, {id: "5", letter: "D", name_cn: "大学名字2"}, {id: "6", letter: "C", name_cn: "大学名字1"}, {id: "7", letter: "D", name_cn: "大学名字0"} ] var op = []; var middle = '';for (var i = 0; i < res.length; i++) { var value = res[i]['letter']; if (middle.includes(value )) { var index = middle.indexOf(value); op[index]['data'].push(res[i]['name_cn']); } else { middle+=value; var a = { letter: value, data: [res[i]['name_cn']] }; op.push(a); } }
添加回答
举报
0/150
提交
取消