Page 1 of 1

JavaScript - Parse array items in reverse order

Posted: 01 Feb 2015, 13:57
by PloMar
How can I parse the array items in reverse order, in JavaScript?
I have a Div and an array with numbers in JS code, like this:

Code: Select all

<div id="dv1"></div>
<script>
var ary = [13, 2, 8, 56, 9];
// here get each ary item in reverse order: 9, 56, 8, 2, 13
</script>
In #dv1 I want to add: 9, 56, 8, 2, 13
Thanks.

JavaScript - Parse array items in reverse order

Posted: 01 Feb 2015, 14:20
by MarPlo
The simplest way is to use a reverse for() loop (with "i--").
See this example:
<div id="dv1"></div>

Code: Select all

<script>
var ary = [13, 2, 8, 56, 9];
var itms = '';
for(var i=ary.length; i--;) {
  itms += ary[i] +', ';
}
document.getElementById('dv1').innerHTML = itms.replace(/(, )$/, '');  // replace() to removes last ','
</script>
- Note, in this reverse for() loop you must have ";" after "i--".

Another way, is to apply the reverse() JavaScript function to that array, then use a simple for() instruction to parse the array items.
Example:

Code: Select all

<div id="dv1"></div>
<script>
var ary = [13, 2, 8, 56, 9];
ary.reverse();
var itms = '';
for(var i=0; i<ary.length; i++) {
  itms += ary[i] +', ';
}
document.getElementById('dv1').innerHTML = itms.replace(/(, )$/, '');  // replace() to removes last ','
</script>
- Or, with forEach() function:

Code: Select all

var ary = [13, 2, 8, 56, 9];
ary.reverse();
var itms = '';
ary.forEach(function(itm) {
  itms += itm +', ';
});

alert(itms);  // 9, 56, 8, 2, 13,
- forEach has the benefit that you don't have to declare indexing and entry variables in the containing scope, and so nicely scoped to just that iteration.