我有一个数据集,我希望将数组中包含的项目放在数据集的前面。
所以我正在尝试:
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
如何将数组中的项目放在数据集的前面?
答案 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
中的元素放在数组的前面。