Javascript 如何在D3.js中通过JSON文件解析按键对对象排序
我有一个JSON文件(Javascript 如何在D3.js中通过JSON文件解析按键对对象排序,javascript,html,json,d3.js,Javascript,Html,Json,D3.js,我有一个JSON文件(myfile.JSON)如下所示: {"3":["c","d"], "3.5":["j","k"], "1.5":["a","b"], "2.5":["x","y"] } 我要做的是打开文件并使用d3.js文件打开对其进行排序 d3.json('myfile.json',function(err,datafull){ for (var myval in datafull) { console.log(myval); } }); 现在
myfile.JSON
)如下所示:
{"3":["c","d"], "3.5":["j","k"], "1.5":["a","b"], "2.5":["x","y"] }
我要做的是打开文件并使用d3.js文件打开对其进行排序
d3.json('myfile.json',function(err,datafull){
for (var myval in datafull) {
console.log(myval);
}
});
现在,如果我这样做,console.log将以未排序的方式打印它们的密钥。
如何对文件进行排序
这是一个不同的问题,因为它涉及到文件解析。要对对象键进行排序,可以使用object.keys()方法,该方法给出给定对象键的数组,然后可以使用array sort()方法
d3.json('myfile.json',函数(err,data){
键=对象。键(数据),
i、 len=键。长度;
键。排序(功能(a、b){
返回a-b;
});
对于(i=0;i
请参见将每个项放入数组,然后对数组进行排序。或者使用
Object.keys()
获取一个键数组,对该数组进行排序,然后使用该数组按排序顺序访问原始对象的属性。但不能对(非数组)进行排序对象。@nnnnnn:如何将文件放入数组?如何将myfile.json
存储到myObj
?您的输出已显示为对象,不是这样吗?我需要从输入json文件开始。@sjm-注意.sort()
如果没有comparator回调,则会进行词法排序,我怀疑OP需要数字排序。我已经更新了答案,但这一切都取决于“数据”是否真的是我猜的对象
d3.json('myfile.json',function(err,data){
keys = Object.keys(data),
i, len = keys.length;
keys.sort(function(a, b) {
return a - b;
});
for (i = 0; i < len; i++)
{
var a = keys[i];
console.log(a + ':' + data[a]);
}
}