gpt4 book ai didi

javascript - 如何计算 javascript 对象中的父对象(出现未定义错误)

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

我正在尝试创建一个可以包含 element 的父级数量的对象。我有一个对象数组。其中有两个字段 tofrom 。我想计算 parent 的长度这是我的代码?

示例

  • "node_from": 11,没有父级..它没有to字段。所以它的长度是0 ,零;
  • "node_from": 12, 来自 11 。因此它有父级 。因此它的父级长度为 1 或 1 ,与 13 , 14,16,18,19 中的相同。<
  • "node_from": 15, 有 2 个父节点来自 13 和 14 ..所以它的长度是 2 。

我们能找到这个

这是我的代码

https://jsfiddle.net/ood2ezvz/2/

var obj={}
for(var i=0;i<node.length;i++){

console.log(node[i]);
var node=node[i]
if(obj.hasOwnProperty(node.node_from)){
obj[node_from]=obj[node_from]++;
}else{
obj[node_from]=0;
}

}
console.log(obj)

出现错误?

预期输出 { 11:0, 12:1, 13:1, 14:1, 15:2, 16:1, 17:1, 18:1 19: 1 }

最佳答案

该提案使用一个临时对象作为父对象,然后返回每个父对象的长度。

function getParentCount(nodes) {
var parent = {}, o = {};
nodes.forEach(function (n) {
parent[n.node_from] = parent[n.node_from] || [];
n.children.forEach(function (a) {
parent[a.node_to] = parent[a.node_to] || [];
parent[a.node_to].push(n.node_from);
});
});
Object.keys(parent).forEach(function (k) { o[k] = parent[k].length; });
return o;
}

var nodes = [{ "node_from": 11, "children": [{ "node_to": 12 }] }, { "node_from": 12, "children": [{ "node_to": 13 }, { "node_to": 14 }] }, { "node_from": 13, "children": [{ "node_to": 15 }] }, { "node_from": 14, "children": [{ "node_to": 15 }] }, { "node_from": 15, "children": [{ "node_to": 16 }, { "node_to": 17 }, { "node_to": 18 }] }, { "node_from": 16, "children": [] }, { "node_from": 17, "children": [] }, { "node_from": 18, "children": [{ "node_to": 19 }] }, { "node_from": 19, "children": [] }];

document.write('<pre>' + JSON.stringify(getParentCount(nodes), 0, 4) + '</pre>');

关于javascript - 如何计算 javascript 对象中的父对象(出现未定义错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273270/

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