首页 > 语言 > JavaScript > 正文

D3.js的基础部分之数组的处理数组的排序和求值(v3版本)

2024-05-06 15:39:41
字体:
来源:转载
供稿:网友

数组的处理 :

数组时一种常用的数据结构,通常是由相同数据类型的项组成集合,拥有数组名,可以凭借数组名和下标来访问数组项。虽然JavaScript允许一个数组中存在不同的数据类型,但实际很少这样使用。需要被可视化的数据常以数组的形式存在,虽然JavaScript中提供了不少操作数组的方法,但JavaScript不是为了数据可视化而存在的。因此,D3数据可视化的需求封装了不少数组处理函数。

一 排序 :

排序的方法:

d3.ascending(a,b);
//递增函数。如果a小于b,则返回-1;如果a大于b,返回1;如果a等于b,返回0;

d3.descending(a,b);
 //递减函数。如果a大于b,则返回-1;如果a小于b,返回1;如果a等于b,返回0; 

之前给大家说过对选择集使用sort()方法。但是如果不指定比较函数的情况下,默认是d3.ascending。 这是D3提供的一个递增函数。其实D3给我们提供了递增和递减两个比较函数。比较函数的规则是 :有函数function(a,b),

如果要使a位于b之前,则返回值小于0;

如果要使a位于b之后,则返回值大于0;

如果a与b相等,则返回值为0; 

d3.ascending(a,b);

//递增函数。如果a小于b,则返回-1;如果a大于b,返回1;如果a等于b,返回0;举个例子 :

 var numList = [22,44,33,11,66]; numList.sort(d3.ascending); //注意 : 此处的sort()方法使JavaScript的数组方法对象(Array)的方法,不是D3的selection.sort()方法。console.log(numList) //[11,22,33,44,66]

 d3.descending(a,b);
//递减函数。如果a大于b,则返回-1;如果a小于b,返回1;如果a等于b,返回0;再举个例子 :

var numList = [22,44,33,11,66]; numList.sort(d3.descending); //注意 : 此处的sort()方法使JavaScript的数组方法对象(Array)的方法,不是D3的selection.sort()方法。console.log(numList) //[66,44,33,22,11]

二 求值 :

求值的方法:

d3.min(array[,accessor])           
//返回数组的最小值
d3.max(array[,accessor])          
//返回数组的最大值
d3.extent(array[,accessor])       
//返回数组最小值和最大值

d3.sum(array[,accessor])          
//返回数组的总和,如果数据为空,则返回0。
d3.mean(array[,accessor])             
//返回数组的平均值,如果数组为空,则返回undefined

d3.median(array[,accessor])          
//求数组的中间值,如果数组为空,则返回undefined。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选