我有一个点数组,与我的dataID数组匹配。
points = [[2,3.5], [1,2.7], [5,2.21], [2,351]];
dataID = [1, 2, 3, 4];
快速排序功能,在javaScript中,我使用的是: (使用我自己的比较函数,比较X然后Y,并且有效)
quicksortbyXthenY: function(array){
if(array.length <= 1) return array;
var pivot = array.splice(Math.round(array.length/2),1)[0];
var lower = greater = [];
jQuery.each(array, function() {
if(compare(this, pivot)>=0){
lower.push(this);
}else{
greater.push(this);
}
});
return (quicksortbyXthenY(lower).concat([pivot])).concat(quicksortbyXthenY(greater));
我需要知道点的新顺序,即与新的点顺序匹配的dataID的更新数组。
实现此目的的最简单方法是什么?
答案 0 :(得分:1)
我需要知道点的新顺序,即与新的点顺序匹配的dataID的更新数组。
为数组赋予它们的ID,然后对它们进行排序,然后从已排序的数组中提取id:
for (var i=0; i<points.length; i++)
points[i].dataID = dataIDs[i];
points.sort(compare);
for (var i=0; i<points.length; i++)
dataIDs[i] = points[i].dataID;