gpt4 book ai didi

javascript - 使用 Javascript/D3.js 访问另一个对象内的对象属性

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

我正在尝试为网络的每个边缘定义一个 id。

(...).enter().append("svg:line")
.attr("class", "edge")
.attr("id", function(d) {
console.log(d);
return "still a test";
});

代码打印:

Object { label: "MB2 (pp) NEK6", source: Object, target: Object, value: 1 }

源和目标属性具有带有属性的对象(它们是网络的节点),包括属性“id”。但是当我使用时:

console.log(d.target.id);

它返回“未定义”并且运行时:

console.log(d.target);

它返回一个数字,我认为它与d.target中存储的对象的属性“index”有关。

我不明白为什么 d 返回一个带有对象的对象(正常),而 d.target 似乎返回一个数字(不正常),因此 d.target.id 不返回目标 id。

我错过了什么?谢谢

最佳答案

我猜测您正在使用强制布局或类似的东西,并且您的原始数据包含每个链接的源和目标的 ID。当您运行强制布局时会发生的情况是,这些数字引用被解析为实际的节点对象。

当您执行 console.log() 时,这种情况并未发生,这意味着原始 ID 仍然存在,而不是对象。

日志显示不同内容的原因是,当您单击记录的对象来检查成员时,这些对象会被解析。也就是说,console.log() 并不显示记录时的内容,而是显示您现在查看的内容。当发生这种情况时,源 ID 和目标 ID 已被对象替换。

要修复此问题,请在对要记录的对象进行操作之前启动强制布局。

关于javascript - 使用 Javascript/D3.js 访问另一个对象内的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947957/

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