为了账号安全,请及时绑定邮箱和手机立即绑定

js 怎么将数组重组成新数组

js 怎么将数组重组成新数组

一只名叫tom的猫 2019-03-15 18:04:05
原数据结构: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);
    }
}


查看完整回答
反对 回复 2019-03-15
  • 2 回答
  • 0 关注
  • 1157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信