Skip to content

2619. Array Prototype Last

Description

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.

 

Example 1:

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

Example 2:

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

 

Constraints:

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

Solutions

Solution 1

Thinking

Arrays need a last-element accessor; the empty case returns \(-1\). Copying and popping is wasteful and mutates.

The last index is \(n-1\), so at(-1) reads it; the empty array uses the sentinel.

Attaching the method to Array.prototype makes it available on every instance.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
declare global {
    interface Array<T> {
        last(): T | -1;
    }
}

Array.prototype.last = function () {
    return this.length ? this.at(-1) : -1;
};

/**
 * const arr = [1, 2, 3];
 * arr.last(); // 3
 */

export {};

Comments