簡體   English   中英

嘗試僅一次返回多個數據

[英]Trying to return multiple data only once

我目前有一個對象,它們是平移位置,我在這里的變換函數中將它們放置在這里:

   .attr("transform", function(d,i)
                {return "translate ("+ arc[i].centroid() +")" +  inner[d.Country];})
                ;


   .text(function(d) {return d.Country;})

我想知道是否可以在文本函數中定義僅收集一次國家數據,而不是多次收集國家數據?

這是一個使我的觀點更加清楚的jsfiddle: http : //jsfiddle.net/xwZjN/41/

任何正確方向的指針將不勝感激

要繪制國家名稱,您要遍歷具有重復國家名稱的節點,因此會得到多個名稱。 也許您可以對節點進行快速轉換並對其進行迭代。 這樣的事情可能會起作用。

首先創建一個返回唯一元素的函數。 這是我在SO中找到的:

function unique(a) {
  var s = a.sort();
  var r = [];
  for (var i = 0; i < a.length - 1; i++) {
    if (s[i + 1] != s[i]) {
      r.push(s[i]);
    }
  }
  return r;
}

然后將以下內容用作您的數據元素。

unique(nodes.map(function(d) { return d.Country }))

它的作用是,首先將節點數組轉換為國家名稱數組,其次,僅獲得非重復的國家名稱。 由於數據現在在d您必須在現場更改函數才能刪除d.Country

希望能幫助到你...

暫無
暫無

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

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