1
我有一个强制有向图的边的阵列,看起来像这样,但更长。为d3力有向图从数组中删除重复的边
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语句是问题。或者这是完全错误的方法?
像往常一样,我相信它明显对有眼睛清新的人。 我的代码有什么问题?
优秀,对我来说真是棒极了。 –