Task

Write a function to flatten the nesting in an arbitrary list of values.

Your program should work on the equivalent of this list:

  [[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]

Where the correct result would be the list:

   [1, 2, 3, 4, 5, 6, 7, 8]

Related task

   Tree traversal


function flatten(input:Array):Array {
	var output:Array = new Array();
	for (var i:uint = 0; i < input.length; i++) {
                //typeof returns "object" when applied to arrays. This line recursively evaluates nested arrays,
                // although it may break if the array contains objects that are not arrays.
		if (typeof input[i]=="object") {
			output=output.concat(flatten(input[i]));
		} else {
			output.push(input[i]);
		}
	}
	return output;
}
 