当前位置:网站首页>将同级数据处理成树形数据
将同级数据处理成树形数据
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>

边栏推荐
- 解决vscode输入! 无法快捷生成骨架(新版vscode快速生成骨架的三种方法)
- 【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
- 通配符SSL证书不支持多域名吗?
- 程序员如何优雅地解决线上问题?
- 进制与转换、关键字
- Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
- 【随心笔记】假期快过去了,都干了点什么
- 用户体验 | 如何度量用户体验 ?
- jmeter
- Mini Program Graduation Works WeChat Food Recipes Mini Program Graduation Design Finished Products (3) Background Functions
猜你喜欢

Sparse representation - study notes

【随心笔记】假期快过去了,都干了点什么

【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿

2022 Go ecosystem rpc framework Benchmark

LeakCanary如何监听Service、Root View销毁时机?

The CAN communication standard frame and extended frame is introduced

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

Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器

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

xss-labs靶场挑战
随机推荐
Transfer learning to freeze the network:
JWT
图解MySQL内连接、外连接、左连接、右连接、全连接......太多了
程序员如何优雅地解决线上问题?
Envoy 源码流程图
上周热点回顾(7.25-7.31)
[Open class preview]: Research and application of super-resolution technology in the field of video quality enhancement
pgAdmin 4 v6.12 发布,PostgreSQL 开源图形化管理工具
R语言ggplot2可视化:使用ggpubr包的geom_exec函数执行geom_*函数(没有任何参数需要放置在aes中)
[Nodejs] node的fs模块
MarkDown公式指导手册
分类预测 | MATLAB实现1-DCNN一维卷积神经网络分类预测
从零开始Blazor Server(4)--登录系统
重庆市大力实施智能建造,推动建筑业数字化转型,助力“建造强市”
机器学习 | MATLAB实现支持向量机回归RegressionSVM参数设定
【likeshop】回收租凭系统100%开源无加密 商城+回收+租赁
STM32 CAN过滤器配置详解
Data frame and remote frame of CAN communication
【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
How do programmers solve online problems gracefully?