父节点的分数值socre等于直属子节点的score之和,只有最有一级节点的score有值,所以需要倒序求出每个父节点score的值,没想出来要怎么搞,求助大神的帮助
总结就是:3级加起来等于2级,2级加起来等于1级
let treeData = [{
level: "1",
parentCode: "0",
score: "",
setItemCode: "cdx10031",
setItemContent: "一级内容1",
sortNumber: 1,
children: [{
level: "2",
parentCode: "cdx10031",
score: "",
setItemCode: "cdx10061"
setItemContent: "二级内容1-1"
sortNumber: 1,
children: [{
level: "3",
parentCode: "cdx10061",
score: "1",
setItemCode: "cdx10090"
setItemContent: "三级级内容1-1-1"
sortNumber: 1,
},{
level: "3",
parentCode: "cdx10061",
score: "2",
setItemCode: "cdx10091"
setItemContent: "三级内容1-1-2"
sortNumber: 2,
}]
},{
level: "2",
parentCode: "cdx10031",
score: "",
setItemCode: "cdx10062"
setItemContent: "二级内容1-2"
sortNumber: 2,
children: [{
level: "3",
parentCode: "cdx10062",
score: "3",
setItemCode: "cdx10092"
setItemContent: "三级级内容1-2-1"
sortNumber: 1,
},{
level: "3",
parentCode: "cdx10062",
score: "4",
setItemCode: "cdx10093"
setItemContent: "三级内容1-2-2"
sortNumber: 2,
}]
}]
},{
level: "1",
parentCode: "0",
score: "",
setItemCode: "cdx10035",
setItemContent: "一级内容2",
sortNumber: 2,
children: [{
level: "2",
parentCode: "cdx10035",
score: "",
setItemCode: "cdx10065"
setItemContent: "二级内容2-1"
sortNumber: 1,
children: [{
level: "3",
parentCode: "cdx10065",
score: "1",
setItemCode: "cdx10095"
setItemContent: "三级级内容2-1-1"
sortNumber: 1,
},{
level: "3",
parentCode: "cdx10065",
score: "2",
setItemCode: "cdx10096"
setItemContent: "三级内容2-1-2"
sortNumber: 2,
}]
},{
level: "2",
parentCode: "cdx10035",
score: "",
setItemCode: "cdx10066"
setItemContent: "二级内容2-2"
sortNumber: 2,
children: [{
level: "3",
parentCode: "cdx10066",
score: "3",
setItemCode: "cdx10097"
setItemContent: "三级级内容2-2-1"
sortNumber: 1,
},{
level: "3",
parentCode: "cdx10066",
score: "4",
setItemCode: "cdx10098"
setItemContent: "三级内容2-2-2"
sortNumber: 2,
}]
}]
}]
function updateTreeScore(tree) {
tree.forEach(node => node.score = (node.children?.[0]?.score ? node.children : updateTreeScore(node.children)).reduce((sum, v) => sum + (+v.score||0), 0) )
return tree
}
updateTreeScore(treeData)
function calculateScore(node) {
if (!node.children || node.children.length === 0) {
return parseInt(node.score, 10);
}
let totalScore = 0;
for (let child of node.children) {
totalScore += calculateScore(child);
}
node.score = totalScore;
return totalScore;
}
treeData.forEach(node => {
calculateScore(node);
});
console.log(treeData);
先算出二级的score,之后再算一级的score
level2Score(countyTargetData, {}, '3')
level2Score(countyTargetData, {}, '2')
function level2Score(tableArr, row, level) {
for (var i = 0; i < tableArr.length; i++) {
if (tableArr[i].level === level) {
row.score = Add(row.score, tableArr[i].score)
}
if (tableArr[i].children && tableArr[i].children.length > 0) {
if (tableArr[i].level * 1 + 1 === level * 1) {
tableArr[i].score = 0
}
level2Score(tableArr[i].children, tableArr[i], level)
}
}
}
如果我没弄错的话,树通常是一个列表,其中的元素按特定顺序排列。孩子们不在他们自己的子列表中,他们都在同一个列表中。 所以,我试图创建一个Tree类,其中包含TreeNodes(类)使用Tree类中的List。 我如何跟踪父母/孩子/叶子?如果父母“父母1”,有两个孩子“孩子A”和“孩子B”,我如何将他们联系在一起?
我是 D3 的新手。因此,我正在尝试呈现一个图形,其中两个或多个孩子可以具有相同的父级。我想知道如何使链接再次定向到同一节点?我有断开的链接.. 任何帮助都是巨大的。 这是我的代码...
问题内容: 我正在使用nltk的Tree数据结构来处理parsetree字符串。 但是,数据结构似乎受到限制。是否可以通过其字符串值获取节点,然后导航至顶部或底部? 例如,假设您要获取字符串值为 ‘nice’ 的节点,然后查看其父级,子级等是什么?可以通过nltk的Tree实现该节点吗? 问题答案: 对于NLTK 3.0,您想使用ParentedTree子类。 http://www.nltk.or
pre { white-space: pre-wrap; } 通常表示一个树节点的方式就是在每一个节点存储一个 parentid。 这个也被称为邻接列表模型。 直接加载这些数据到树形菜单(Tree)是不允许的。 但是我们可以在加载树形菜单之前,把它转换为标准标准的树形菜单(Tree)数据格式。 树(Tree)插件提供一个 'loadFilter' 选项函数,它可以实现这个功能。 它提供一个机会来改
上面的数组 id=311的父节点是 id=31,id=2的父节点为null; 请问应该怎么解决?
element ui 树状表格选择父节点子节点全选,子节点不全选父节点半选? el-table没有相关示例,需要手动实现好像?![上传中...]()