簡體   English   中英

在對象數組中查找互連的ID

[英]Find the interconnected ids in an array of objects

我有一個對象數組,這些對象按ID表示在D3力向圖中使用的對象之間的連接。 源密鑰和目標密鑰均表示ID。 看起來像這樣:

var links: [
{ source: 1, target: 0 }, 
{ source: 1, target: 2 }, 
{ source: 1, target: 3 }, 
{ source: 1, target: 4 }, 
{ source: 1, target: 5 }, 
{ source: 2, target: 3 }, 
{ source: 2, target: 4 }, 
{ source: 2, target: 5 }, 
{ source: 3, target: 4 }, 
{ source: 3, target: 5 }, 
{ source: 4, target: 5 }, 
{ source: 6, target: 7 }, 
{ source: 8, target: 7 }, 
{ source: 9, target: 7 }, 
{ source: 7, target: 0 } ]

編號1到5相互連接,使得在d3中呈現時,您會看到它們像這里一樣形成5點星形: http : //jsfiddle.net/6DTMp/

您將如何遍歷此數組以找到與ID 1到5相同的方式相互連接的對象? 我要尋找的最終結果是擁有一個ID數組,這些ID組成D3圖上形成5個尖星的節點。

我用for / in遍歷邊緣,並將看到的所有內容存儲在將id映射到相鄰節點列表的對象中。

這樣的事情。

var map = {};
for( var k in links ) {
    var src = links[k].source;
    var tgt = links[k].target;

    if( typeof map[src] === "undefined" ) {
        map[src] = [];
    }
    map[src].push(tgt);

    if( typeof map[tgt] === "undefined" ) {
        map[tgt] = [];
    }
    map[tgt].push(src);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM