/** * 排序处理 * @param ob1 * @param ob2 * @return */ private var sortType:String; private function sort_handle(ob1:Object, ob2:Object):Number { var result1:int; var result2:int; switch (sortType) { case "quality": result1 = ob1.isBattle * 1000 + ob1.constData.quality * 10000 + ob1.addData.star * 100 + ob1.addData.level; result2 = ob1.isBattle * 1000 + ob2.constData.quality * 10000 + ob2.addData.star * 100 + ob2.addData.level; break; case "star": result1 = ob1.isBattle * 1000 + ob1.constData.quality * 100 + ob1.addData.star * 10000 + ob1.addData.level; result2 = ob2.isBattle * 1000 + ob2.constData.quality * 100 + ob2.addData.star * 10000 + ob2.addData.level; break; case "level_up": result1 = ob1.isBattle * 1000 + ob1.constData.quality * 100 + ob1.addData.star + ob1.addData.level * 10000; result2 = ob2.isBattle * 1000 + ob2.constData.quality * 100 + ob2.addData.star + ob2.addData.level * 10000; break; case "level_down": result1 = ob1.isBattle * 1000 + ob1.constData.quality * 100 + ob1.addData.star + (100 - ob1.addData.level + 100) * 10000; result2 = ob2.isBattle * 1000 + ob2.constData.quality * 100 + ob2.addData.star + (100 - ob2.addData.level + 100) * 10000; break; default: result1 = ob1.isBattle * 10000 + ob1.constData.quality * 1000 + ob1.addData.star * 100 + ob1.addData.level * 10; result2 = ob2.isBattle * 10000 + ob2.constData.quality * 1000 + ob2.addData.star * 100 + ob2.addData.level * 10; break; } if (result1 > result2) { return -1; } else if (result1 == result2) { return 0; } return 1; }
调用
var _result:Array; _result = after_filter_arr.sort(sort_handle);