次のコードはMike BostockのForce-Directed Graph with Mouseoverのコードです。私はこのコードについてより鋭い質問をすることはできませんが、申し訳ありませんが、誰かがリンクから別個のノードを計算するforEachブロックの構文を説明できるかどうか疑問に思っていました。JavaScriptでの複数の代入式と構文の説明
以下の行ではどういうことが起こり、どの変数に割り当てられていますか?同じ式で複数の代入を実行するための名前はありますか?
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
var links = [
{source: "Ericsson", target: "ZTE", type: "suit"},
{source: "Kodak", target: "Samsung", type: "resolved"},
{source: "Apple", target: "Samsung", type: "suit"},
{source: "Kodak", target: "RIM", type: "suit"},
{source: "Nokia", target: "Qualcomm", type: "suit"}
];
var nodes = {};
// Compute the distinct nodes from the links.
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});