You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript作业求助:实现返回数组末元素的lastElement函数

现有代码的核心问题
  • 没有正确使用return返回函数结果:当前实现只是通过console.log在控制台打印内容,函数本身不会向外传递任何计算结果(默认返回undefined)。课程的自动判分逻辑一般是直接读取函数的返回值做校验,不会读取控制台的打印内容,哪怕打印结果和预期一致,这部分也是拿不到分的。
  • 条件判断逻辑顺序错误:当前的判断逻辑把“空数组判定”放在了“最后一个元素是否大于等于0”的条件分支后,会出现大量边界场景失效的问题:比如传入的数组最后一个元素是负数、字符串、布尔值时,既不满足arr[arr.length -1] >=0的条件,也不满足空数组的判定,函数会无任何输出。
  • 空数组的取值兜底逻辑冗余:空数组的length为0时,直接取arr[arr.length -1]会得到undefined,根本不需要对这个值做大小判断,优先判断数组长度才是最高效、最不容易出错的逻辑。
符合题目要求的正确实现
function lastElement(arr) {
    // 优先判定空数组场景
    if (arr.length === 0) {
        return null;
    }
    // 非空数组直接返回最后一个元素,全程不对原数组做修改
    return arr[arr.length - 1];
}
测试验证

你可以直接运行下面的测试用例校验返回值:

lastElement([3,5,7]) // 返回7
lastElement([1]) // 返回1
lastElement([]) // 返回null
lastElement([-2, -5]) // 返回-5
lastElement(['test', true]) // 返回true

注意:JS中数组不存在负索引的语法,所以不需要额外判断取到的值是不是负数,只要数组非空,arr[arr.length -1]就能准确拿到最后一个元素,也完全不会修改原数组内容,符合题目“不得删除该元素”的要求。

内容的提问来源于stack exchange,提问作者Confirmed Sk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 15:15:08