家庭作业协助[重复]
Posted
技术标签:
【中文标题】家庭作业协助[重复]【英文标题】:Homework assistance [duplicate] 【发布时间】:2021-06-20 03:54:52 【问题描述】:正在学习 Udemy 课程,需要帮助解决这个问题。玩了大约一天,我还是个新手,正在努力掌握 javascript。
这是问题。
请编写一个名为“lastElement”的函数,该函数出现在单个数组参数中。该函数应返回数组的最后一个元素(不删除该元素)。如果数组为空,则函数应返回“null”。
这是我到目前为止所写的内容,它可以在我的带有 Visual Studio Code 的歌剧浏览器上运行。也适用于 Chrome,但我想知道我的导师希望我如何得到正确的答案。无论如何,这是我的答案。
function lastElement(arr)
const jacob = arr[arr.length - 1];
if (arr[arr.length - 1] >= 0)
console.log(jacob);
else if (arr.length <= 0)
console.log(null);
// These are the values i am checking.
1 | lastElement([3,5,7]); //7
2 | lastElement([1]); //1
3 | lastElement([]); //null"
【问题讨论】:
看起来该任务让您从函数中返回一个值,而不仅仅是将其记录到控制台。 我不想只是发布解决方案,而是提出一些可能有帮助的问题。检查你的功能,是return
ing 吗?您将如何检查数组是否为空(然后将其与解决方案中的 if/else 进行比较)?
请注意您的条件是错误的if (arr[arr.length - 1] >= 0)
。这会检查最后一个数组元素是否为>= 0
,而不是数组是否为非空。
没有理由关闭这个问题,因为 OP 自己尝试并提出了它。
【参考方案1】:
您可以先检查长度,如果为零则返回null
,因为这比获取元素然后检查长度要短。
if (arr.length === 0) return null;
对于所有其他情况,返回最后一个元素。这里不需要else
语句,因为第一个条件是return
语句。
return arr[arr.length - 1];
function lastElement(array)
if (array.length === 0) return null;
return array[array.length - 1];
console.log(lastElement([3, 5, 7])); // 7
console.log(lastElement([1])); // 1
console.log(lastElement([])); // null
【讨论】:
为什么不返回 array.at(-1) ?【参考方案2】:您的讲师希望您的函数实际上是 return
最后一个元素,而不仅仅是 console.log
它:
function lastElement(arr)
return Array.isArray(arr) && arr.length ? arr[arr.length - 1] : null;
console.log(lastElement([3, 5, 7])); // 7
console.log(lastElement([1])); // 1
console.log(lastElement([])); // null
返回值有用的原因是你可以例如将返回值分配给变量,或将其传递给另一个函数。
后者是我的示例代码中实际发生的情况:
console.log(lastElement([1]));
像这样执行:
lastElement([1]) // this is called first and returns 1
然后将return
值1
传递给console.log
:
console.log(1)
关于我使用的语法,称为三元表达式,它在功能上与
if (Array.isArray(arr) && arr.length) return arr[arr.length - 1];
else return null;
// same as
return Array.isArray(arr) && arr.length ? arr[arr.length - 1] : null;
【讨论】:
第一条评论回答了我的问题,谢谢大家的回复。 为什么不 arr.at(-1) ?以上是关于家庭作业协助[重复]的主要内容,如果未能解决你的问题,请参考以下文章