#2667:创建Hello World功能
#javascript #算法 #leetcode

响应于最近创建的30 Days of JS challenge在leetcode上,我将在每个问题上提出自己的解决方案,并在解决方案时通过解决策略。

发布的第一个挑战是#2667-一个涉及简单功能 - 内侧功能技巧的问题。让我们看看

过程

给出了一组简短的说明。

写一个函数createHelloWorld。它应该返回一个始终返回"Hello World"的新功能。

我喜欢为挑战选择的这套特定问题的事情是,大多数人都有已经编写的单位测试,为我们提供了一个指导。

这是为此问题创建的测试。

const f = createHelloWorld();
f(); // "Hello World"

因此,显然我们会从制作createHelloworld函数开始,然后将其放入另一个功能,这将是第一个的返回值。

function createHelloWorld() {
  return function() { return "Hello World" }
}

请注意,这是ES5语法,使用箭头函数是另一个选项,可以简单地完成,因为我们返回的功能恰好是匿名函数 - 我们可以在哪里使用箭头来缩短箭头的一个了不起的示例代码。

const createHelloWorld = () => () => "Hello World";

结论

在三行或一行中,这是一个简单的解决方案的简单问题。这个问题最重要的收获是,我们可以从功能内部返回功能 - 在即将到来的挑战中我们将使用很多的关键功能。

如果您发现这个有用,请务必在帖子上留下ð,而在Github repo

关注更多LC内容:)