Sorting in ActionScript

ActionScript doesn’t have a built-in sorting package like Go’s slices package, but we can achieve similar functionality using Array methods. Here’s how we can implement sorting in ActionScript:

package {
    import flash.display.Sprite;
    import flash.text.TextField;

    public class SortingExample extends Sprite {
        public function SortingExample() {
            // Create a TextField to display our results
            var output:TextField = new TextField();
            output.width = 400;
            output.height = 200;
            addChild(output);

            // Sorting functions work for any comparable type in ActionScript

            var strs:Array = ["c", "a", "b"];
            strs.sort();
            output.appendText("Strings: " + strs + "\n");

            // An example of sorting Numbers
            var nums:Array = [7, 2, 4];
            nums.sort(Array.NUMERIC);
            output.appendText("Numbers: " + nums + "\n");

            // We can also check if an array is already in sorted order
            var isSorted:Boolean = isArraySorted(nums);
            output.appendText("Sorted: " + isSorted + "\n");
        }

        // Helper function to check if an array is sorted
        private function isArraySorted(arr:Array):Boolean {
            for (var i:int = 1; i < arr.length; i++) {
                if (arr[i] < arr[i-1]) {
                    return false;
                }
            }
            return true;
        }
    }
}

In this ActionScript example:

  1. We create an Array of strings and sort it using the default sort() method, which works for strings.

  2. For sorting numbers, we use sort(Array.NUMERIC) to ensure correct numerical sorting.

  3. We implement a custom isArraySorted() function to check if an array is in sorted order, as ActionScript doesn’t have a built-in method for this.

  4. The results are displayed using a TextField, as ActionScript is typically used in a visual context.

To run this code, you would typically embed it in a Flash project or compile it with the ActionScript compiler. The output would be displayed in the Flash application window, showing:

Strings: a,b,c
Numbers: 2,4,7
Sorted: true

Note that ActionScript’s sorting is in-place, modifying the original array, similar to the Go example. However, ActionScript doesn’t have generics, so we use different sorting approaches for different types (default for strings, numeric for numbers).