Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在D3.js中通过JSON文件解析按键对对象排序_Javascript_Html_Json_D3.js - Fatal编程技术网

Javascript 如何在D3.js中通过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); } }); 现在

我有一个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);
    }
  });
现在,如果我这样做,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]);
  }
}