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語句是問題。或者這是完全錯誤的方法?
像往常一樣,我相信它明顯對有眼睛清新的人。 我的代碼有什麼問題?
優秀,對我來說真是棒極了。 –