在AS3中对二维数组进行排序

时间:2009-11-13 14:14:39

标签: flash actionscript-3 arrays sorting

所以,我有一个ID和投票计数的二维数组 - voteArray [i] [0] = ID,voteArray [i] [1] =投票数

我希望前三个投票的项目以不同的颜色显示,所以我有一个第二个数组 - sortArray。

然后,当我显示结果时,我计划使用排序数组中的数据来找出voteArray数据应该具有的颜色。来自voteArray的数据应按ID的正确顺序排列。

这就是我的所作所为:

sortArray = voteArray;
sortArray.sortOn("1",Array.NUMERIC);

这会弄乱voteArray中数据的排序。我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果你说:

sortArray = voteArray;

您只是将voteArray的引用分配给sortArray。 因此,在该语句之后,两个变量都指向同一块内存。

我有点惊讶Flash中的Array类没有克隆功能或复制构造函数

您可以复制数组的方法:

var sortArray:Array = voteArray.filter(function(){return true;});

var sortArray:Array = voteArray.slice(0);

答案 1 :(得分:1)

public function mySort(a:Array, b:Array):Number {
  if(a[1] <= b[1]) {
    return 1;
  }
  return -1;
}

sortArray.sort(mySort);