从JSON数组文件中动态检索键并将其用于d3js函数

时间:2018-12-28 17:06:19

标签: javascript json d3.js

我想动态地从外部json数组中检索键,并在生成条形图的d3js函数中使用它们。这是json代码。

[
 {   
    "Interns": 5,
    "Projects": 10,
    "Time":"Jan"
},

{
    "Interns": 16,
    "Projects": 20,
    "Time":"Feb"
}
]

我想检索所有键并在d3函数中使用它们,这些函数使用数据在条形图中绘制条形。下面,我写了一个示例d.Time,但是如果我不知道自己曾经使用过什么键,该怎么办给定的?

x.domain(data.map(function(d) { return d.Time; }));

这是我尝试的方法,此函数将密钥存储在数组mykeys中。 data中的getKeys(data)引用了d3.json()函数中的参数

var getKeys = function(arr) {
   var key, keys=[];
   for(var i=0; i< (arr.length - (arr.length - 1)); i++) {
       for(key in arr[i]) {
           keys.push(key);
       }
   }
   return keys;
}
var myKeys = getKeys(data); // Gives ["Interns","Projects","Time"]

现在,如果我使用console.log mykeys [2],它将显示Time,但是当我在上述域函数中使用d.mykeys[2]时,它似乎不起作用? 为什么这样 ???请帮忙!

1 个答案:

答案 0 :(得分:2)

您正在尝试通过字符串的名称访问d属性。 mykeys[2]保留该字符串(“时间”),因此应为d[mykeys[2]],它等于d["Time"],而后者又等于d.Time ...