需求:
有3个小朋友 每个小朋友书包里有4种文具
现需要统计每个小朋友得每种文具分别有多少个?
即将每个小朋友得每种文具分别放到一个数组里
即将每个数组里得每一列数据放到一个新数组里,最终组成一个二维数组
var data = [{
userId:1,
userName:'小红',
bag:[
{id:1,type:'书本',count:1},
{id:2,type:'橡皮',count:2},
{id:3,type:'铅笔',count:3},
{id:4,type:'钢笔',count:4}
]
},{
userId:2,
userName:'小明',
bag:[
{id:1,type:'书本',count:5},
{id:2,type:'橡皮',count:6},
{id:3,type:'铅笔',count:7},
{id:4,type:'钢笔',count:8}
]
},{
userId:3,
userName:'小花',
bag:[
{id:1,type:'书本',count:9},
{id:2,type:'橡皮',count:10},
{id:3,type:'铅笔',count:11},
{id:4,type:'钢笔',count:12}
]
}]
数据操作部分:
let countArr = []
for(let i=0;i<data.length;i++){
let arr = data[i].bag
if(arr && arr.length && arr.length != 0){
for(let j=0;j<arr.length;j++){
if(!countArr[arr[j].id]){
countArr[arr[j].id] = []
}
countArr[arr[j].id].push(arr[j].count)
}
}
}
let keys = Object.keys(countArr) // 获取关联数组countArr得key数组
let trueArr = [] //最后数据的容器
for(let i=0;i<keys.length;i++){
trueArr[i] = countArr[keys[i]]
}