昨天遇到了一个需要对后端传来的一段数据做操作,是将一维数组转为二维数组,思考了半天,夜晚又和朋友讨论了一下,思路如下。(毕竟我只是个切图仔)
let classRes = [{className: '05',name: 'a1',age: '12',sex: '1'},{className: '03',name: 'a2',age: '13',sex: '0'},{className: '05',name: 'a3',age: '14',sex: '1'},{className: '01',name: 'a4',age: '10',sex: '0'},{className: '05',name: 'a5',age: '19',sex: '1'},{className: '06',name: 'a1',age: '21',sex: '1'},{className: '01',name: 'a2',age: '22',sex: '0'},{className: '02',name: 'a3',age: '9',sex: '1'},{className: '01',name: 'a4',age: '9',sex: '0'},{className: '05',name: 'a5',age: '6',sex: '1'},]//操作将所有数据转为以className分类的二维数组let res = {}classRes.map(item => {// 可以先输出一下想要的结果// console.log(item.className,item,'66666')res[item.className] = res[item.className] || []; //给className后加一个[]中括号res[item.className].push(item); //将所有的item列放入到对应的className中})console.log(res, '66666') //通过logo值判断res所处的状态
这是我输出的效果图,仅供参考
不执行 res[item.className].push(item) 的输出
所想要的二位数组
如果您有更好的方法,可以提出来一起交流