昨天遇到了一个需要对后端传来的一段数据做操作,是将一维数组转为二维数组,思考了半天,夜晚又和朋友讨论了一下,思路如下。(毕竟我只是个切图仔)
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) 的输出
所想要的二位数组
如果您有更好的方法,可以提出来一起交流