'How reverse the order of an array [duplicate]
I currently use this bit of javascript inside Adobe After Effects to print a customizable list of numbers
x = 0 //starting point (the first number in the list);
y= 20 //increments (the size of the steps);
z= 5 //the number of steps;
Array.from(new Array(z)).map((_, i) => i * y + x).join("\n")
which (in this case) would output
0
20
40
60
80
It would be really cool if I could also generate the list in reverse
80
60
40
20
0
but because I'm not a programmer I have no idea how to do this. Could someone help me with this?
Solution 1:[1]
Instead of starting from the first number (x) and adding y for each iteration, you can start from the last number and subtract y for every iteration.
The last number would be the number of times y is added added to x. That gives the formulat (z - 1) * y) + x
x = 0 //starting point (the first number in the list);
y= 20 //increments (the size of the steps);
z= 5 //the number of steps;
const result = Array.from(new Array(z))
.map((_, i) => (((z - 1) * y) + x) - (i * y)).join("\n");
console.log(result);
Solution 2:[2]
I think there is no need to optimisation here, as the op has no programming experience, a simple solution is well enough, which would be the Array.reverse().
See the the MDN docs for correct usage.
const x = 0 //starting point (the first number in the list);
const y= 20 //increments (the size of the steps);
const z= 5 //the number of steps;
const array = Array.from({length: z}, ((_, i) => i * y + x)).reverse().join("\n");
console.log(array);
Another possible solution: simply populate your array from the back. Then no need to reverse.
const x = 0 //starting point (the first number in the list);
const y= 20 //increments (the size of the steps);
const z= 5 //the number of steps;
const array = Array.from({length: z}, ((_, i) => (z * y - y) - i * y)).join("\n");
console.log(array);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | VLAZ |
| Solution 2 |
