当前位置:网站首页>Process sibling data into tree data
Process sibling data into tree data
2022-08-01 12:02:00 【snow xiaoxin】
Process sibling data into tree data
<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");
//Process inbound and outbound form data
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>

边栏推荐
- 安装apex报错
- ACL 2022 | 文本生成的相关前沿进展
- 判断JS数据类型的四种方法
- 表连接详解
- 数字化转型实践:世界级2B数字化营销的方法框架
- Kaitian aPaaS mobile phone number empty number detection [Kaitian aPaaS battle]
- 回归预测 | MATLAB实现TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)多输入单输出
- R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用stat_central_tendency函数在密度中添加均值竖线并自定义线条类型
- 收藏|机械工程师面试常问问题
- R language ggplot2 visualization: use ggpubr package ggscatter function visualization scatterplot, use xscale wasn't entirely specified X axis measurement adjustment function, set the X coordinate for
猜你喜欢

将同级数据处理成树形数据

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

xss-labs靶场挑战

Promise learning (2) An article takes you to quickly understand the common APIs in Promise

Data frame and remote frame of CAN communication

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

Excel表格打印时不打印标记填充颜色

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

ECCV22|只能11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT

STM32 CAN过滤器配置详解
随机推荐
【公开课预告】:超分辨率技术在视频画质增强领域的研究与应用
Promise学习(一)Promise是什么?怎么用?回调地狱怎么解决?
[Nodejs] node的fs模块
R语言ggplot2可视化:使用ggpubr包的ggscatter函数可视化散点图、使用xscale函数指定X轴坐标轴度量调整方式、设置x轴坐标为scientific使用科学计数法显示坐标值
回归预测 | MATLAB实现TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)多输入单输出
Data frame and remote frame of CAN communication
千万级乘客排队系统重构&压测方案——总结篇
Why Metropolis–Hastings Works
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
The CAN communication standard frame and extended frame is introduced
pgAdmin 4 v6.12 发布,PostgreSQL 开源图形化管理工具
各位大拿,安装Solaris 11.4操作系统,在安装数据库依赖包的时候包这个错,目前无原厂支持,也无安装盘,联网下载后报这个错,请教怎么解决?
Why Metropolis–Hastings Works
The use of Ts - Map type
LeakCanary如何监听Service、Root View销毁时机?
STM32 CAN filter configuration details
每日一题:连续子数组的最大和(动态规划)
如何获取微信视频号的地址(微信公众号的链接地址)
OpenHarmony高校技术俱乐部计划发布
Qt获取文件夹下所有文件