我已經在這幾天了,我已經看到了stackoverflow和其他地方的問題,但我錯過了一些東西。d3使用節點名稱鏈接的強制圖形
比方說我們有以下的JSON:
{
"nodes":[
{"name":"node1"},
{"name":"node2"},
{"name":"node3"},
{"name":"node4"}
],
"links":[
{"source":"node1","target":"node2"},
{"source":"node1","target":"node3"},
{"source":"node1","target":"node4"}
]
}
爲什麼代碼產生以下兩件在控制檯相同的輸出,但第二個給我一個錯誤(遺漏的類型錯誤:無法讀取屬性「推「未定義)?
links = links.map(function(l) {
var sourceNode = nodes.filter(function(n) { return n.name === l.source; })[0];
var targetNode = nodes.filter(function(n) { return n.name === l.target; })[0];
return {
source: sourceNode,
target: targetNode
};
});
_
links.forEach(function(link) {
link.source = {name: link.source};
link.target = {name: link.target};
});
控制檯輸出:
[{"source":{"name":"node1"},"target":{"name":"node2"}},
{"source":{"name":"node1"},"target":{"name":"node3"}},
{"source":{"name":"node1"},"target":{"name":"node4"}}]
您何時會收到錯誤? –
@Lukasz,我立即得到錯誤。不知道我理解你的問題。請參閱以下兩個控制檯輸出:https://jsfiddle.net/mosley/m3xynk8q/(無錯誤)和https://jsfiddle.net/mosley/kLubuw70/(錯誤)。 – mosley