当前位置:网站首页>将同级数据处理成树形数据
将同级数据处理成树形数据
2022-08-01 11:33:00 【淋雪小新】
将同级数据处理成树形数据
<script>
const oldArray = [
{
batchNo: "1",
factoryCnName: "苹果",
goodsCnName: "pingguo",
inputNum: 1,
},
{
batchNo: "1",
factoryCnName: "苹果",
goodsCnName: "pingguo",
inputNum: 3,
},
{
batchNo: "1",
factoryCnName: "梨子",
goodsCnName: "lizi",
inputNum: 3,
},
{
batchNo: "1",
factoryCnName: "梨子",
goodsCnName: "lizi",
inputNum: 3,
},
{
batchNo: "2",
factoryCnName: "苹果",
goodsCnName: "pingguo",
inputNum: 3,
},
];
const inStoreTabData = TabFormartFun(oldArray);
console.log(inStoreTabData, "inStoreTabData");
//处理出入库表格数据
function TabFormartFun(arr) {
const data1 = dataformart1(arr, "goodsCnName");
const data2 = dataformart2(data1, "factoryCnName");
const result = dataformart3(data2, "batchIdNo");
return result;
}
//格式化表格数据
function dataformart1(beforeData, name) {
var tempArr = [];
var afterData = [];
for (var i = 0; i < beforeData.length; i++) {
if (tempArr.indexOf(beforeData[i][name]) == -1) {
afterData.push({
Name: beforeData[i][name],
show: i == 0 || name == "batchIdNo" ? true : false,
children: [beforeData[i]],
});
tempArr.push(beforeData[i][name]);
} else {
for (var j = 0; j < afterData.length; j++) {
if (afterData[j].Name == beforeData[i][name]) {
afterData[j].children.push(beforeData[i]);
break;
}
}
}
}
return afterData;
}
function dataformart2(beforeData, name) {
beforeData.forEach((element, index) => {
var afterData = [];
var tempArr = [];
var ele = element.children;
var itemArr = dataformart1(ele, name);
beforeData[index].children = itemArr;
});
return beforeData;
}
function dataformart3(beforeData, name) {
beforeData.forEach((element, index) => {
var afterData = [];
var tempArr = [];
var ele = element.children;
var itemArr = dataformart2(ele, name);
//计算数量
itemArr.forEach((eve) => {
eve.children.forEach((item) => {
var total = 0;
item.children.forEach((e) => {
total = total + (e.inputNum - 0);
});
item.total = total;
});
});
beforeData[index].children = itemArr;
});
return beforeData;
}
</script>

边栏推荐
- 《MySQL核心知识》第6章:查询语句
- C language implementation!20000 in 4 seconds
- OpenHarmony高校技术俱乐部计划发布
- Hot review last week (7.25 7.31)
- 新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行
- 【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿
- Envoy 源码流程图
- 回归预测 | MATLAB实现TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)多输入单输出
- Aeraki Mesh 加入 CNCF 云原生全景图
- 各位大拿,安装Solaris 11.4操作系统,在安装数据库依赖包的时候包这个错,目前无原厂支持,也无安装盘,联网下载后报这个错,请教怎么解决?
猜你喜欢
![[Open class preview]: Research and application of super-resolution technology in the field of video image quality enhancement](/img/fc/cd859efa69fa7b45f173de74c04858.png)
[Open class preview]: Research and application of super-resolution technology in the field of video image quality enhancement

redis6 跟着b站尚硅谷学习

Promise to learn several key questions (3) the Promise - state change, execution sequence and mechanism, multitasking series, abnormal penetration, interrupt the chain of Promise

Pytest e-commerce project combat (below)

千万级乘客排队系统重构&压测方案——总结篇

leetcode/子矩阵元素和

Promise学习(三)Promise的几个关键性问题 -- 状态改变、执行顺序与机制、多任务串联、异常穿透、中断promise链

复现assert和eval成功连接或失败连接蚁剑的原因

【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用

小程序插件如何帮助开发者受益?
随机推荐
在线GC日志分析工具——GCeasy
Browser shortcut keys
【likeshop】回收租凭系统100%开源无加密 商城+回收+租赁
【云享新鲜】社区周刊·Vol.73- DTSE Tech Talk:1小时深度解读SaaS应用系统设计
Sparse representation - study notes
bat倒计时代码
redis6 跟着b站尚硅谷学习
轮询和长轮询的区别
ACL 2022 | 文本生成的相关前沿进展
Deep understanding of Istio - advanced practice of cloud native service mesh
【讲座分享】“营收“看金融
.NET深入解析LINQ框架(三:LINQ优雅的前奏)
音视频技术开发周刊 | 256
JS数据类型转换完全攻略
How to use DevExpress controls to draw flowcharts?After reading this article, you will understand!
2022 Go生态圈 rpc 框架 Benchmark
Excel表格打印时不打印标记填充颜色
[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand
2022 Go ecosystem rpc framework Benchmark
R language ggplot2 visualization: use the ggdensity function of the ggpubr package to visualize density plots, use the stat_central_tendency function to add mean vertical lines to the density and cust