次filter
は同じですが、それは二つの異なる要素に適用される結果: d3.js /効率的なJavaScriptコード
mNode.filter(function(otherNode) {
return connectedNodes.indexOf(otherNode.id) > -1
}).select("image").style("opacity", BACKGROUND_OPACITY);
mNode.filter(function (otherNode) {
return connectedNodes.indexOf(otherNode.id) > -1;
}).select("circle").style("stroke", "#f6f6f6");
は、どのように私は、コードを複製することなく、1
filter
にそれを組み合わせることができますか?
2番目に、より効率的な反対に適用する方法はありますか?
mNode.filter(function(otherNode) {
return connectedNodes.indexOf(otherNode.id) > -1
}).select("image").style("opacity", BACKGROUND_OPACITY);
mNode.filter(function(otherNode) {
return connectedNodes.indexOf(otherNode.id) == -1
}).select("image").style("opacity", DEFAULT_OPACITY);
条件が満たされている場合は、1番目のスタイルを適用し、2番目のスタイルを適用します。
ありがとうございます!あなたの最初の質問に答える
'for'を使って 'mNode'を繰り返し、' if ... else'を使ってスタイルを適用します。 – Tushar
@Tushar 'mNode'は配列ではなく、そのフィルタは' Array.prototype.filter'ではない、それは同じ名前の別のメソッドです(混乱しています、私は知っています...)。だから、 'のための'はここで動作しません。 –