原数据结构: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
提交
取消
