【发布时间】:2017-03-03 04:38:14
【问题描述】:
我有一个力有向图的边数组,看起来像这样,但要长得多。
var rawLinks = [{ source: 1, target: 2 },
{ source: 2, target: 1 },
{ source: 6, target: 7 },
{ source: 7, target: 6 },
{ source: 8, target: 9 },
{ source: 8, target: 9 },
{ source: 8, target: 86 },
{ source: 8, target: 101 },
{ source: 8, target: 133 },
{ source: 8, target: 134 }]
由于这些点是曲面上的点,因此我想删除会导致点之间重复线的元素。
例如,我只需要前两个元素中的一个,因为它们会导致从 1 到 2 以及从 2 到 1 的一行。我只需要在 1 和 2 之间的一行。
我试过这个,但我得到了意想不到的结果。
var links = [];
for (var i=0; i<rawLinks.length; i++) {
for (var j=0; j<rawLinks.length; j++) {
if(rawLinks[i].source != rawLinks[j].target &&
rawLinks[i].target != rawLinks[j].source){
links.push(rawLinks[i])
}
}
}
我很确定我的 if 语句是问题所在。或者这是完全错误的方法?
像往常一样,我敢肯定,这对眼光敏锐的人来说是显而易见的。 我的代码有什么问题?
【问题讨论】:
标签: javascript node.js d3.js