家庭作业协助[重复]

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"

【问题讨论】:

看起来该任务让您从函数中返回一个值,而不仅仅是将其记录到控制台。 我不想只是发布解决方案,而是提出一些可能有帮助的问题。检查你的功能,是returning 吗?您将如何检查数组是否为空(然后将其与解决方案中的 if/else 进行比较)? 请注意您的条件是错误的if (arr[arr.length - 1] &gt;= 0)。这会检查最后一个数组元素是否为&gt;= 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

然后将return1传递给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) ?

以上是关于家庭作业协助[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Java中重复排列数组

Oracle PL/SQL 并行执行 [重复]

PHP正则表达式匹配IP地址[重复]

在不使用朋友类的情况下访问私人成员[重复]

第五周作业

C返回char []警告“返回局部变量的地址”[重复]