数组基于某个值转为二维数组
下面整理一个一维数组转为二维数组的过程 , 数组中多个对象(每一项)的 name 一致 , 所以通过每一项的 type 来区分
上硬菜~~
<script>
export default {
methods: {
// 先来封装一下
groupBy (array, fun) {
const groups = { };
array.forEach(item => {
const group = JSON.stringify(fun(item));
groups[group] = groups[group] || [];
groups[group].push(item);
});
return Object.keys(groups).map((group) => {
return groups[group];
});
},
// 随便来一个方法获取数据后调用以上方法
trainingLook () {
api.post(接口路径, 参数).then(res => {
if (res.code == 'CPYY-00001') {
// res.data 格式为 [{type:1,name:'训练1'},{type:2,name:'训练2',id:4},{type:2,name:'训练2',id:5},{type:2,name:'训练2',id:6},{type:3,name:'训练3'}]
this.lookOverList = this.groupBy(res.data, function (item) {
return [item.type];
});
// 将 type 一致的存放到一个数组
// 转化后的格式为 [[{type:1,name:'训练1'}][{type:2,name:'训练2',id:4},{type:2,name:'训练2',id:5},{type:2,name:'训练2',id:6}][{type:3,name:'训练3'}]]
}
}).catch(err => {
console.log(err);
});
}
}
}
</script>
以上总结基于 vue 文件 , 其余可灵活使用~~
还没有评论,来说两句吧...