我需要一些帮助来理解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
发布于 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);
}
它接受一系列参数,并用指定的分隔符将它们分开。这是一个相当优雅的解决方案,似乎可以实现您想要做的事情。否则,您将需要声明一个全局变量,并使用它来连接数组,因为每次调用该函数时都需要访问它。您可以将其作为参数传递,但这意味着上面的函数就足够了。
https://stackoverflow.com/questions/52959441
复制相似问题