JavaScript挑战

时间:2018-04-02 19:08:36

标签: javascript

所以我有一个小的JavaScript函数,我需要弄清楚如何编码,作为一个挑战。基本上是:

function me() { // imp this function code }

var isSame1 = me("123")("321") === "123 321";
var isSame2 = me("321")("123") === "321 123";

期望的输出是我们希望两个isSame变量都是真的。所以从我到目前为止的理解,me()函数需要最初返回一个函数(我想象的某种形式的递归),然后以某种方式一个字符串,以便连接结果字符串(真正的例子有一些字符串操作期间me()函数,但我不需要帮助那部分。)

我觉得我有一个JavaScript功能,我在这里看不清楚。我知道我可以将一个函数作为一个对象返回并调用它,这是一个非常简洁的功能,但是字符串处理/传递给另一个函数然后将它返回到底是令我困惑的。

任何人都可以指出我正确的方向来查找。不要让它完全为我回答,只是希望得到合适的研究领域。

Gerneio

1 个答案:

答案 0 :(得分:1)

JavaScript中的

Currying非常简单。只需从me()返回一个范围函数。

例如,要使用闭包实现curried加法,您可以编写如下函数:

function add (a) {
  return b => a + b
}

console.log(add(3)(4))

或者参见下面的挑战解决方案。

Spoiler(完全实现):

  

 function me (a) {
   return b => `${a} ${b}`
 }
 
 console.log(me(123)(321))
 console.log(me(321)(123))

希望这有助于您找到所需内容。