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
相关产品推荐
相关产品推荐

