Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Arrays 使用d3js对数组进行排序_Arrays_Sorting_D3.js - Fatal编程技术网

Arrays 使用d3js对数组进行排序

Arrays 使用d3js对数组进行排序,arrays,sorting,d3.js,Arrays,Sorting,D3.js,我有一个数组,数组中的每个元素(代表最高法院首席法官)都包含一个数据点数组(首席法官的姓名、争议数量和年份) 对于顶级数组中的每个元素,我需要按年份升序对低级数组进行排序 我尝试使用以下方法按升序对年份进行排序: nested_data.forEach(function(d) { d.values.sort(d3.ascending(d.values.year)); }); 但它并没有按年份的升序对较低级别的数组进行排序 下面是嵌套数据的console.log,以显示其结构 A

我有一个数组,数组中的每个元素(代表最高法院首席法官)都包含一个数据点数组(首席法官的姓名、争议数量和年份)

对于顶级数组中的每个元素,我需要按年份升序对低级数组进行排序

我尝试使用以下方法按升序对年份进行排序:

  nested_data.forEach(function(d) {
    d.values.sort(d3.ascending(d.values.year));
  });
但它并没有按年份的升序对较低级别的数组进行排序

下面是嵌套数据的
console.log
,以显示其结构

Array[5]
  0:Object
    key:"Vinson"
    values:Array[7]
      0:Object
        chief:"Vinson"
        disputes:142
        year:Tue Jan 01 1946 00:00:00 GMT+0800 (CST)
      1:Object
      2:Object
      3:Object
      4:Object
      5:Object
      6:Object
  1:Object
    key:"Warren"
    values:Array[16]
  2:Object
    key:"Burger"
    values:Array[17]
  3:Object
    key:"Rehnquist"
    values:Array[19]
  4:Object
    key:"Roberts"
    values:Array[11]
如何按年份升序排列下层数组?

这是函数:

nested_data.forEach(function(d) {
    d.values.sort(function(a, b) {
        return d3.ascending(+a.year, +b.year)
    });
});
您原来的函数有两个问题:

  • 由于您正在对
    数组进行排序,因此不需要在
    比较功能中重复
  • 指定时,
    compareFunction
    使用两个参数,通常命名为
    a
    b
    。您必须将
    d3.升序
    放入
    compareFunction
    中。看一看
  • 下面是一个带有虚假数据的演示:

    var数据=[{
    键:“foo”,
    价值观:[{
    酋长:“鲍勃”,
    年份:1982年
    }, {
    酋长:“汤姆”,
    年份:1977年
    }, {
    酋长:“卡拉”,
    年份:2010年
    }, {
    酋长:“安娜”,
    年份:1999年
    }]
    }, {
    键:“酒吧”,
    价值观:[{
    局长:“条例草案”,
    年份:2009年
    }, {
    酋长:“特德”,
    年份:2014年
    }]
    }, {
    键:“baz”,
    价值观:[{
    酋长:“弗雷德”,
    年份:1998年
    }, {
    酋长:“苏”,
    年份:1992年
    }, {
    酋长:“查理”,
    年份:1999年
    }, {
    酋长:“爱丽丝”,
    年份:1979年
    }]
    }, ];
    data.forEach(函数(d){
    d、 值。排序(函数(a,b){
    回报率d3.上升(+a.年,+b.年)
    });
    });
    控制台日志(数据)