【LeetCode】2619. 数组原型对象的最后一个元素

数组原型对象的最后一个元素

题目


请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1

你可以假设数组是 JSON.parse 的输出结果。


示例 1 :

输入:nums = [null, {}, 3]

输出:3

解释:调用 nums.last() 后返回最后一个元素: 3


示例 2 :

输入:nums = []

输出:-1

解释:因为此数组没有元素,所以应该返回 -1


提示:

arr 是一个有效的 JSON 数组

0 <= arr.length <= 1000


题解

在定义 Array 类共用方法时,函数内的 this 代表本数组

ts 复制代码
declare global {
    interface Array<T> {
        last(): T | -1;
    }
}

Array.prototype.last = function<T>(): T | -1 {
    let list: T[] = [...this];
    if (!list.length) return -1;
    return list[list.length -1]
};

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

export {};
相关推荐
Frostnova丶4 小时前
LeetCode 799. 香槟塔
算法·leetcode
蒸蒸yyyyzwd5 小时前
力扣刷题笔记
笔记·算法·leetcode
Anastasiozzzz5 小时前
三色标记法:并发垃圾回收的核心算法与漏标问题攻防战
算法
小刘的大模型笔记5 小时前
POP原理落地到实际微调
数据库·人工智能·深度学习·算法·机器学习
小比特_蓝光5 小时前
string类的模拟实现
数据结构·c++·算法
uesowys5 小时前
Apache Spark算法开发指导-Gradient-boosted tree regression
算法·spark
fs哆哆5 小时前
在VB.NET中,随机数生成教程:包含上界的整数与双精度数
算法
香芋Yu5 小时前
【强化学习教程——01_强化学习基石】第03章_动态规划与策略迭代
算法·动态规划·代理模式
YGGP5 小时前
【Golang】LeetCode 239. 滑动窗口最大值
算法·leetcode·职场和发展
Swift社区5 小时前
LeetCode 389 找不同 - Swift 题解
算法·leetcode·swift