Hi all, here what I need to achieve, I have a list of 99 item (something like a phone book) and I will like to sort them in different method. Part of the 99 item might be empty, so the requirement is to move the empty field behind the sorted data in every sorting behavior
With a help of a friend, here the code we have so far:
var SDData:Array = switchedIndices=[];
SDData.push({index:1, num:"61101231", name:"Christopher"});
SDData.push({index:2, num:"61101232", name:"Ronald"});
SDData.push({index:3, num:"61101233", name:"Mary"});
SDData.push({index:4, num:"61101234", name:"Lisa"});
SDData.push({index:5, num:"61101235", name:"Michelle"});
SDData.push({index:6, num:"61101236", name:"John"});
SDData.push({index:7, num:"61101237", name:"Daniel"});
SDData.push({index:8, num:"61101238", name:"Anthony"});
SDData.push({index:9, num:"61101239", name:"Patricia"});
SDData.push({index:10, num:"61101240", name:"Nancy"});
SDData.push({index:11, num:"61101241", name:"Laura"});
SDData.push({index:12, num:"62201231", name:"Robert"});
SDData.push({index:13, num:"62201232", name:"Paul"});
SDData.push({index:14, num:"62201233", name:"Kevin"});
SDData.push({index:15, num:"62201234", name:"Linda"});
SDData.push({index:16, num:"62201235", name:"Karen"});
SDData.push({index:17, num:"62201236", name:"Sarah"});
SDData.push({index:18, num:"62201237", name:"Michael"});
SDData.push({index:19, num:"62201238", name:"Mark"});
SDData.push({index:20, num:"62201239", name:"Jason"});
SDData.push({index:21, num:"62201240", name:"Barbara"});
SDData.push({index:22, num:"63301231", name:"Betty"});
SDData.push({index:23, num:"63301232", name:"Kimberly"});
SDData.push({index:24, num:"63301233", name:"William"});
SDData.push({index:25, num:"63301234", name:"Donald"});
SDData.push({index:26, num:"63301235", name:"Jeff"});
SDData.push({index:27, num:"63301236", name:"Elizabeth"});
SDData.push({index:28, num:"63301237", name:"Helen"});
SDData.push({index:29, num:"63301238", name:"Deborah"});
SDData.push({index:30, num:"63301239", name:"David"});
SDData.push({index:31, num:"-", name:"-"});
SDData.push({index:32, num:"-", name:"-"});
SDData.push({index:33, num:"-", name:"-"});
SDData.push({index:34, num:"-", name:"-"});
SDData.push({index:35, num:"-", name:"-"});
SDData.push({index:36, num:"-", name:"-"});
SDData.push({index:37, num:"-", name:"-"});
SDData.push({index:38, num:"-", name:"-"});
SDData.push({index:39, num:"-", name:"-"});
SDData.push({index:40, num:"-", name:"-"});
SDData.push({index:41, num:"-", name:"-"});
SDData.push({index:42, num:"-", name:"-"});
SDData.push({index:43, num:"-", name:"-"});
SDData.push({index:44, num:"-", name:"-"});
SDData.push({index:45, num:"-", name:"-"});
SDData.push({index:46, num:"-", name:"-"});
SDData.push({index:47, num:"-", name:"-"});
SDData.push({index:48, num:"-", name:"-"});
SDData.push({index:49, num:"-", name:"-"});
SDData.push({index:50, num:"-", name:"-"});
SDData.push({index:51, num:"-", name:"-"});
SDData.push({index:52, num:"-", name:"-"});
SDData.push({index:53, num:"-", name:"-"});
SDData.push({index:54, num:"-", name:"-"});
SDData.push({index:55, num:"-", name:"-"});
SDData.push({index:56, num:"-", name:"-"});
SDData.push({index:57, num:"-", name:"-"});
SDData.push({index:58, num:"-", name:"-"});
SDData.push({index:59, num:"-", name:"-"});
SDData.push({index:60, num:"-", name:"-"});
SDData.push({index:61, num:"-", name:"-"});
SDData.push({index:62, num:"-", name:"-"});
SDData.push({index:63, num:"-", name:"-"});
SDData.push({index:64, num:"-", name:"-"});
SDData.push({index:65, num:"-", name:"-"});
SDData.push({index:66, num:"-", name:"-"});
SDData.push({index:67, num:"-", name:"-"});
SDData.push({index:68, num:"-", name:"-"});
SDData.push({index:69, num:"-", name:"-"});
SDData.push({index:70, num:"-", name:"-"});
SDData.push({index:71, num:"-", name:"-"});
SDData.push({index:72, num:"-", name:"-"});
SDData.push({index:73, num:"-", name:"-"});
SDData.push({index:74, num:"-", name:"-"});
SDData.push({index:75, num:"-", name:"-"});
SDData.push({index:76, num:"-", name:"-"});
SDData.push({index:77, num:"-", name:"-"});
SDData.push({index:78, num:"-", name:"-"});
SDData.push({index:79, num:"-", name:"-"});
SDData.push({index:80, num:"-", name:"-"});
SDData.push({index:81, num:"-", name:"-"});
SDData.push({index:82, num:"-", name:"-"});
SDData.push({index:83, num:"-", name:"-"});
SDData.push({index:84, num:"-", name:"-"});
SDData.push({index:85, num:"-", name:"-"});
SDData.push({index:86, num:"-", name:"-"});
SDData.push({index:87, num:"-", name:"-"});
SDData.push({index:88, num:"-", name:"-"});
SDData.push({index:89, num:"-", name:"-"});
SDData.push({index:90, num:"-", name:"-"});
SDData.push({index:91, num:"-", name:"-"});
SDData.push({index:92, num:"-", name:"-"});
SDData.push({index:93, num:"-", name:"-"});
SDData.push({index:94, num:"-", name:"-"});
SDData.push({index:95, num:"-", name:"-"});
SDData.push({index:96, num:"-", name:"-"});
SDData.push({index:97, num:"-", name:"-"});
SDData.push({index:98, num:"-", name:"-"});
SDData.push({index:99, num:"-", name:"-"});
function recreateArray(sort:String, emptyValue:String, descending:Boolean, bottom:Boolean):Void {
SDData.sortOn(sort,Array.NUMERIC | (descending ? Array.DESCENDING : null));
switchedIndices = [];
for (var i in SDData) {
if (SDData*[emptyValue] == "-") {
switchedIndices.push(SDData*);
SDData.splice(Number(i),1);
}
}
switchedIndices.sortOn(sort,Array.NUMERIC | (descending ? Array.DESCENDING : null));
SDData = !bottom ? SDData.concat(switchedIndices) : switchedIndices.concat(SDData);
}
function displayData():Void {
for (var i = 0; i<SDData.length; i++) {
//trace(SDData*.index+"="+SDData*.num);
trace(SDData*.index+"="+SDData*.name);
}
}
/*
updateBlanks : Function - Arguments
sort : String - The key to sort on
emptyValue : String - The field to move when they have no value
descending : Boolean - Whether or not to sort descending
bottom : Boolean - Whether or not to place the blank values
at the bottom (start) of the array
*/
recreateArray("name","name",true,false);
// Display the data
displayData();
Sorting by index and ascending work out fine
recreateArray(“index”,“num”,false,false);
But there is some problem with the coding…
Problem 1
By if you we try to sort by index and descending, an error will occur
recreateArray(“index”,“num”,true,false);
item 50 will appear at the top of the list even if it is an empty value
Problem 2
If I wanna sort by name in ascending order
recreateArray(“name”,“name”,false,false);
a lot of empty field will appear at the top of the list
Problem 3
descending seem for name seem to work fine,
recreateArray(“name”,“name”,true,false);
But the empty field at the bottom is kinda randomize, preferably it should be sorted by it index etc…
anyone have any idea where did we go wrong?