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

所以我正在尝试:

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


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

最佳答案

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

例如:

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中。

09-25 15:12