How to sort an array of objects?

using this code…



var carsArray:Array = new Array();
carsArray.push({car:"mazda", year:1982, options:{price:15000, rating:"C"}});
carsArray.push({car:"ford", year:2001, options:{price:25000, rating:"A"}});
carsArray.push({car:"volkswagen", year:2001, options:{price:13000, rating:"A"}});
carsArray.push({car:"volkswagen", year:1997, options:{price:14000, rating:"F"}});
carsArray.push({car:"volkswagen", year:1997, options:{price:15000, rating:"A"}});
carsArray.push({car:"volkswagen", year:1997, options:{price:18000, rating:"B"}});

carsArray.sortOn(["car", "year", "rating"]);
for (var car in carsArray) {
    for (var prop in carsArray[car]) {
        trace("  " + prop + ": " + carsArray[car][prop]);
        for (var option in carsArray[car][prop]) {
            trace("    " + option + ": " + carsArray[car][prop][option]);
        }
    }
    trace("---");
}

which traces…


  options: [object Object]
    price: 25000
    rating: A
  car: ford
  year: 2001
---
  options: [object Object]
    price: 15000
    rating: C
  car: mazda
  year: 1982
---
[COLOR=Red]  [COLOR=DarkRed]options: [object Object]
    price: 14000
    rating: F
  car: volkswagen
  year: 1997
---[/COLOR][/COLOR][COLOR=DarkRed]
[/COLOR] [COLOR=DarkRed]  options: [object Object]
    price: 15000
    rating: A
  car: volkswagen
  year: 1997
---
[/COLOR] [COLOR=DarkRed]  options: [object Object]
    price: 18000
    rating: B
  car: volkswagen
  year: 1997
---[/COLOR]
  options: [object Object]
    price: 13000
    rating: A
  car: volkswagen
  year: 2001
---


how would i get this output, so that the sort is by car, year, then by rating?

The 1997 volkswagens should start from A to F, like this…


  options: [object Object]
    price: 25000
    rating: A
  car: ford
  year: 2001
---
  options: [object Object]
    price: 15000
    rating: C
  car: mazda
  year: 1982
---
 [COLOR=DarkRed] options: [object Object]
    price: 15000
    rating: A
  car: volkswagen
  year: 1997
---
  options: [object Object]
    price: 18000
    rating: B
  car: volkswagen
  year: 1997
***---
***[/COLOR] [COLOR=DarkRed]  options: [object Object]
    price: 14000
    rating: F
  car: volkswagen
  year: 1997
---[/COLOR]
  options: [object Object]
    price: 13000
    rating: A
  car: volkswagen
  year: 2001
---


i’ve tried all different ways, but the rating syntax never takes effect.
thanks!