88 * Create an array representing the range of numbers (usually integers), between, and inclusive of,
99 * the given `start` and `end` arguments. For example:
1010 *
11- * `var array = numberArray(2, 4); // array = [2, 3, 4]`
12- * `var array = numberArray(0, 9); // array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`
11+ * `var array = Phaser.Utils.Array.NumberArray(2, 4); // array = [2, 3, 4]`
12+ * `var array = Phaser.Utils.Array.NumberArray(0, 9); // array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`
13+ * `var array = Phaser.Utils.Array.NumberArray(8, 2); // array = [8, 7, 6, 5, 4, 3, 2]`
1314 *
14- * This is equivalent to `numberArrayStep (start, end, 1)`.
15+ * This is equivalent to `Phaser.Utils.Array.NumberArrayStep (start, end, 1)`.
1516 *
1617 * You can optionally provide a prefix and / or suffix string. If given the array will contain
1718 * strings, not integers. For example:
1819 *
19- * `var array = numberArray (1, 4, 'Level '); // array = ["Level 1", "Level 2", "Level 3", "Level 4"]`
20- * `var array = numberArray (5, 7, 'HD-', '.png'); // array = ["HD-5.png", "HD-6.png", "HD-7.png"]`
20+ * `var array = Phaser.Utils.Array.NumberArray (1, 4, 'Level '); // array = ["Level 1", "Level 2", "Level 3", "Level 4"]`
21+ * `var array = Phaser.Utils.Array.NumberArray (5, 7, 'HD-', '.png'); // array = ["HD-5.png", "HD-6.png", "HD-7.png"]`
2122 *
2223 * @function Phaser.Utils.Array.NumberArray
2324 * @since 3.0.0
@@ -33,22 +34,50 @@ var NumberArray = function (start, end, prefix, suffix)
3334{
3435 var result = [ ] ;
3536
36- for ( var i = start ; i <= end ; i ++ )
37+ var i ;
38+ var asString = false ;
39+
40+ if ( prefix || suffix )
3741 {
38- if ( prefix || suffix )
42+ asString = true ;
43+
44+ if ( ! prefix )
3945 {
40- var key = ( prefix ) ? prefix + i . toString ( ) : i . toString ( ) ;
46+ prefix = '' ;
47+ }
4148
42- if ( suffix )
49+ if ( ! suffix )
50+ {
51+ suffix = '' ;
52+ }
53+ }
54+
55+ if ( end < start )
56+ {
57+ for ( i = start ; i >= end ; i -- )
58+ {
59+ if ( asString )
4360 {
44- key = key . concat ( suffix ) ;
61+ result . push ( prefix + i . toString ( ) + suffix ) ;
62+ }
63+ else
64+ {
65+ result . push ( i ) ;
4566 }
46-
47- result . push ( key ) ;
4867 }
49- else
68+ }
69+ else
70+ {
71+ for ( i = start ; i <= end ; i ++ )
5072 {
51- result . push ( i ) ;
73+ if ( asString )
74+ {
75+ result . push ( prefix + i . toString ( ) + suffix ) ;
76+ }
77+ else
78+ {
79+ result . push ( i ) ;
80+ }
5281 }
5382 }
5483
0 commit comments