首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript分隔符和闭包

JavaScript分隔符和闭包
EN

Stack Overflow用户
提问于 2018-10-24 08:17:09
回答 1查看 87关注 0票数 1

我需要一些帮助来理解JavaScript中的闭包。我需要创建一个函数(function1),用于在数组元素之间插入指定的分隔符,如果没有指定分隔符,则插入逗号。我试过了,但不起作用。

function function1(separator)
{
    return function(elements)
    {
        for (var i = 0; i < elements.length; i++)
        return (`${elements}`+ separator);
    };
}


var ex1 = function1("/");
ex1("One"); 
ex1("Two"); 


var ex2 = function1("*");
ex2("One"); 
ex2("Two"); 


var ex3 = function1();
ex3("One");
ex3("Two");


console.log("ex1 is" + ex1() );
console.log("ex2 is " + ex2() );
console.log("ex3 is " + ex3() );

输出应为

ex1 is One/Two
ex2 is One*Two
ex3 is One,Two
EN

回答 1

Stack Overflow用户

发布于 2018-10-24 08:52:44

如果我理解的话...您有一系列指定元素的单词。您希望创建一个字符串,并在它们之间设置分隔符。该数组需要有一个函数的作用域,因此需要在函数声明之外声明,或者用作参数。对于是否需要通过第二个函数传递数组,我有一些困惑。如果没有,下面有一个例子:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

function myConcat(separator) {
     var args = Array.prototype.slice.call(arguments, 1);
     return args.join(separator);
}

它接受一系列参数,并用指定的分隔符将它们分开。这是一个相当优雅的解决方案,似乎可以实现您想要做的事情。否则,您将需要声明一个全局变量,并使用它来连接数组,因为每次调用该函数时都需要访问它。您可以将其作为参数传递,但这意味着上面的函数就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52959441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档