使用d3.sort()将项目放在数据集前面的数组中

时间:2015-11-22 21:14:41

标签: javascript arrays sorting d3.js

我有一个数据集,我希望将数组中包含的项目放在数据集的前面。

所以我正在尝试:

climate.sort(function(a, b) {

    if (dotscountries.indexOf(a.country) > -1) {
        return b - a
    } 
 });

这不起作用。

我的数据如下(csv):

date,country,value1,value2,dataset,region,global
1991,France,6.702,0.239,intensity,eu,392.7922
1991,California,12.5,0.305,intensity,na,350.9
1991,Italy,7.343,0.282,intensity,eu,416.44257
1991,Japan,8.603,0.272,intensity,asia,1066.42158
1991,Brazil,1.617,0.407,intensity,sa,245.68986
1991,South Korea,6.226,0.656,intensity,asia,269.85239
1991,Germany,11.614,0.398,intensity,eu,928.95023

如何将数组中的项目放在数据集的前面?

1 个答案:

答案 0 :(得分:2)

我认为,您最好的选择是从数据集中过滤该数组中的项目,然后将连接到它们的前面。

例如:

var removed = [];
climate = climate.filter(function(a) {
    if(dotscountries.indexOf(a.country) > -1) {
        removed.push(a);
        return false;
    }
    return true;
});
// if you actually want climate sorted, then sort it now
climate.sort(cmp); removed.sort(cmp);
climate = removed.concat(climate);

这将独立地对两个部分进行排序,并将dotcountries中的元素放在数组的前面。