Problem

Write code that enhances all arrays such that you can call the array.last() method on any array and it will return the last element. If there are no elements in the array, it should return -1.

You may assume the array is the output of JSON.parse.

Examples

Example 1

1
2
3
Input: nums = [null, {}, 3]
Output: 3
Explanation: Calling nums.last() should return the last element: 3.

Example 2

1
2
3
Input: nums = []
Output: -1
Explanation: Because there are no elements, return -1.

Constraints

  • arr is a valid JSON array
  • 0 <= arr.length <= 1000

Solution

Method 1 – Polyfill Using Prototype

Intuition

Add a last() method to all arrays so that it returns the last element, or -1 if the array is empty.

Approach

Define the method on Array.prototype. If the array is empty, return -1; otherwise, return the last element.

Code

1
2
3
4
Array.prototype.last = function() {
  if (this.length === 0) return -1;
  return this[this.length - 1];
};

Complexity

  • ⏰ Time complexity: O(1)
  • 🧺 Space complexity: O(1)