[英]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.