我正在尝试创建一个可以打开和关闭其系列的分组图表 - 这是一个有效的演示
https://bl.ocks.org/andrew-reid/64a6c1892d1893009d2b99b8abee75a7
我试图让它从json输入中运行 - 但我遇到了错误。
http://jsfiddle.net/0ht35rpb/231/
我基本上想从数据中获取密钥数组。
var keys = data.columns.slice(1); ^当它是csv
时,它曾经存在所以需要获取此密钥
var keys = [
"AA",
"BB"
]
来自数据
var data = [{
"State": "CA",
"AA": 100,
"BB": 200
},
{
"State": "TX",
"AA": 454,
"BB": 344
}];
答案 0 :(得分:2)
由于columns
没有创建d3.json
属性,您可以使用d3.keys
获取密钥:
var keys = d3.keys(data[0]).slice(1);
这是一个演示:
var data = [{
"State": "CA",
"AA": 100,
"BB": 200
}, {
"State": "TX",
"AA": 454,
"BB": 344
}];
var keys = d3.keys(data[0]).slice(1);
console.log(keys)

<script src="https://d3js.org/d3.v4.min.js"></script>
&#13;
由于密钥的顺序未定义,更安全的方法是删除slice
并使用filter
代替:
var data = [{
"State": "CA",
"AA": 100,
"BB": 200
}, {
"State": "TX",
"AA": 454,
"BB": 344
}];
var keys = d3.keys(data[0]).filter(function(d) {
return d != "State";
});
console.log(keys)
&#13;
<script src="https://d3js.org/d3.v4.min.js"></script>
&#13;
答案 1 :(得分:0)
您也可以使用Object.keys()