# Array.prototype.last >= 0.1.2

## Purpose

Return the last value of the array

## Syntax

Array#last ( NumbernrNumberpage= 0 );

### Parameters

nr
How many values should be returned
page
From what page they should be returned (The pagesize is the same as the nr of results to return)

# Return the last value

This simply returns the last value, not contained inside an array. This can also be expressed using [arr.length-1]

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.last();
>>> 9

Explicitly setting the first value to 1 WILL return an array

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.last(1);
>>> [9]

# Return the last three values

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.last(3);
>>> [7, 8, 9]

# Return paged results

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

arr.last(3, 0);
>>> [7, 8, 9]

arr.last(3, 2);
>>> [1, 2, 3]

# Negative values

When nr is a negative value, all the values are returned except the absolute-of-nr first values.

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

arr.last(-1);
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9];

arr.last(-3);
>>> [3, 4, 5, 6, 7, 8, 9];

# Chaining

last() is incredibly useful for chaining.

Take this unordered array of random numbers, for example:

var arr = [10, 3, 78, 20, 66, 90, 1];

And we want the highest value below 50 (We could use Math.max for this, but we won't)

Without .last method you would need to assign the temporary array to a new variable, in order to get its length later on

// We don't want to modify the original array, so we clone it
var clone = arr.slice();

// We only want numbers below 50
clone = clone.filter(function(a){return a<50});

// Now we want to sort them (we could use Math.max, but for this example we won't)
clone.sort(function(a, b){return a-b});

// And now we can get the last value
clone[clone.length-1];
>>> 20

But with last, you can do this

arr.slice().filter(function(a){return a<50}).sort(function(a,b){return a-b}).last();
>>> 20

This example looks a bit messy but, yeah, it can be very useful.