簡體   English   中英

d3js-如何忽略JSON中的特定對象

[英]d3js - How to ignore specific object in JSON

我有一個類似於以下內容的json文件:

    {
 "children": [
  {
   "name": "المصاريف",
   "children": [
    {"name": "بنزين","size": 14230,"colour": "rgb(220,230,180)"},
    {"name": "تاكسي","size": 25220,"colour": "rgb(220,230,200)"},
    {"name": "شاي","size": 30523,"colour": "rgb(220,230,220)"}
   ]
  },
  {
   "name": "الدخل",
   "children": [
    {"name": "مرتب","size": 50657,"colour": "rgb(150,230,180)"},
    {"name": "ايجار","size": 24320,"colour": "rgb(150,230,200)"},
    {"name": "مصنع","size": 163460,"colour": "rgb(150,230,220)"}
   ]
  },{
   "name": "الربح","size": 168464,"colour": "rgb(180,230,220)"}
 ]
}

如您所見,根對象沒有名稱,而我正在使用

  .data(partition.nodes(root))

所以我需要忽略我的d3圖表中的第一個節點

換句話說,我需要忽略沒有空名稱的任何節點或忽略出現在圖例中的空節點

這是我的問題的屏幕截圖http://postimg.org/image/bp44yryuh/

partition.nodes(root)方法返回一個數組。

因此,您可以根據各個數據對象的任何功能(例如名稱是否為非空)來過濾數組

.data(partition.nodes(root).filter(function(d){return d.name;}) )
    //any nodes with no value or an empty string for d.name will be filtered out

但是,在從d3分區布局節點數組中濾除根的特定情況下,您可以利用以下事實: 根節點將始終是返回數組中的第一個節點 因此,僅對數組進行切片比對每個元素運行過濾器測試要快得多:

.data( partition.nodes(root).slice(1) );

暫無
暫無

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

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