所以,我有一个ID和投票计数的二维数组 - voteArray [i] [0] = ID,voteArray [i] [1] =投票数
我希望前三个投票的项目以不同的颜色显示,所以我有一个第二个数组 - sortArray。
然后,当我显示结果时,我计划使用排序数组中的数据来找出voteArray数据应该具有的颜色。来自voteArray的数据应按ID的正确顺序排列。
这就是我的所作所为:
sortArray = voteArray;
sortArray.sortOn("1",Array.NUMERIC);
这会弄乱voteArray中数据的排序。我做错了什么?
答案 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);