gpt4 book ai didi

javascript - 如何使用 Angular 计算子项总数并在父项中显示

转载 作者:行者123 更新时间:2023-12-03 03:49:23 25 4
gpt4 key购买 nike

我的结果集

id  Parent      text        type        Cr

1 0 Parent1 Default 0.00
2 1 parent1.1 Default 0.00
3 1 parent1.2 Default 0.00
4 2 Child1 Master 10.00
5 2 child2 Master 20.00
6 3 child1 Master 25.00
7 3 child2 Master 50.00

我有以下数据集,我想计算要在父级中显示的子级总数以及主父级中的所有子父级总数

树结构是这样的

                               Total Cr 
Parent1---------------------------105
parent1.1---------------------30
Child1------------10
child2------------20
parent1.2---------------------75
child1------------25
child2------------50

我尝试过以下操作

for (i = 0; i < $scope.treeData.length; i++) {
if ($scope.treeData[i].type == 'default') {

var ICr = 0.00;
angular.forEach(data.Table, function (items456) {

var Itm123Cr = eval(items456.Cr);

IDr += parseFloat(Itm123Cr == undefined ? 0 : Itm123Cr),

$scope.treeData[i] = {
"id": $scope.treeData[i].id, "parent": $scope.treeData[i].parent, "text": $scope.treeData[i].text,
"data": {

"Cr": ICr
},
"type": $scope.treeData[i].type,
}

});

}
}

所以我想过滤数据集(主类型仅包含数据)

id  Parent      text        type        Cr

1 0 Parent1 Default 105.00
2 1 parent1.1 Default 30.00
3 1 parent1.2 Default 75.00
4 2 Child1 Master 10.00
5 2 child2 Master 20.00
6 3 child1 Master 25.00
7 3 child2 Master 50.00

最佳答案

抱歉其他答案..那是不正确的。我误解了这个问题

看看以下内容:

var data = [
{id: 1, parent: null, type: 'default', text: 'root', cr: 0},
{id: 2, parent: 1, type: 'default', text: 'Parent 1', cr: 0},
{id: 3, parent: 1, type: 'default', text: 'Parent 2', cr: 0},
{id: 4, parent: 2, type: 'master', text: 'Child 1 P1', cr: 10},
{id: 5, parent: 2, type: 'master', text: 'Child 2 P1', cr: 20},
{id: 6, parent: 3, type: 'master', text: 'Child 1 P2', cr: 25},
{id: 7, parent: 3, type: 'master', text: 'Child 2 P2', cr: 50}
];


function run() {


data.forEach(function (item, index, arr) {
if (item.parent != null) {
//something like:
var indexOfParent = findParent(item.parent);
if (indexOfParent === -1) {
//ERROR! no parent found!
console.warn('No parent found!');
}
else {
var parent = data[indexOfParent];//0based
if (!parent.children) {
parent.children = [];
}
parent.children.push(item);
}
}
});

//new function
function findParent(parentId){
var index;
index = data.findIndex(function(element){
return element.id == parentId;
});
return index
}

function normalize(parent) {
if (parent.parent != null) {
if (parent && parent.children) {
for (var i = 0, l = parent.children.length; i < l; ++i) {
var child = parent.children[i];
parent.cr += child.cr;
//child.index = i;
//if (!child.parentId) child.parentId = parent.id || '0';
normalize(child);
}
}
else {
console.log(parent.cr);
}
}
}

data.forEach(function (a) {
normalize(a)
})
//UPDATE 2
var rootIndex = data.findIndex(function(element){
return element.parent == null;
})

var root = data[rootIndex];
root.children.forEach(function(child){
root.cr+=child.cr;
})
//normalize(data);
}

run();

关于javascript - 如何使用 Angular 计算子项总数并在父项中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45233613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com