Vue实战(十):对数组数据的拆分和分组合并
2023-12-13 10:13:57
Vue实战(十):对数组数据的拆分和分组合并
数据初始化
//第一种情况
tableData: [
{ id: 1, name: ["A", "B"] },
{ id: 2, name: ["A", "C"] },
{ id: 3, name: ["B", "C"] },
{ id: 4, name: ["A", "B", "C"] },
],
//第二种情况
tableData1: [
{ id: 1, name: ["A"] },
{ id: 2, name: ["B"] },
{ id: 3, name: ["C"] },
],
//第三种情况
tableData2: [
{ id: 1, name: ["A"] },
{ id: 2, name: ["A"] },
{ id: 3, name: ["C"] },
],
分解数据
separateData(arr) {
let newArr = [];
arr.forEach((item) => {
item.name.forEach((it) => {
var obj = {};
this.$set(obj, "id", item.id);
this.$set(obj, "name", it.split(","));
newArr.splice(newArr.length, 0, obj);
});
});
return newArr;
}
分组数据
groupBy(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
}
第一种情况测试
console.log(JSON.stringify(this.tableData));
let arr = this.separateData(this.tableData);
console.log(JSON.stringify(arr));
let result = this.groupBy(arr, "name");
console.log(JSON.stringify(result));
第二种情况测试
console.log(JSON.stringify(this.tableData1));
let arr = this.separateData(this.tableData1);
console.log(JSON.stringify(arr));
let result = this.groupBy(arr, "name");
console.log(JSON.stringify(result));
第三种情况测试
console.log(JSON.stringify(this.tableData2));
let arr = this.separateData(this.tableData2);
console.log(JSON.stringify(arr));
let result = this.groupBy(arr, "name");
console.log(JSON.stringify(result));
文章来源:https://blog.csdn.net/weixin_46175652/article/details/134843897
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!