首页 > 解决方案 > JavaScript中的连接函数,对于元素数量未知的数组,分隔符未显示在末尾

问题描述

我是 JavaScript 新手,在使用 join 函数时遇到了一个小问题。我有一个包含未知数量元素的数组,我想使用连接在每两个元素之间使用分隔符打印它。我想得到这样的东西:a/b/c/d'/'是分隔符。问题是我最后得到了最后一个分隔符,如下所示:a/b/c/d/. 我怎样才能摆脱这个?
这是我的代码:

var makePath;

function makePath(separator) {
  let comp = []
  return function(element) {
    comp.push(element)
    return comp.join(separator)
  }
}

var main = function() {
  var p1 = makePath("/");
  p1("One");
  p1("Two");
  p1("Three");

  window.console.log("p1:" + p1());
}

main()

标签: javascriptarraysjoinseparator

解决方案


在您的console.log声明中,您正在p1()使用一个空参数进行调用。这就是将尾随分隔符添加到您的字符串的原因。您可能希望存储最终调用的结果并改用它。

var makePath;
function makePath(separator)
{   
  let comp = []
  return function(element)
  {
    comp.push(element)
    return comp.join(separator)
  }
}




var main = function()   
{
var p1 = makePath("/");
p1("One"); 
p1("Two"); 
var x = p1("Three");//store the result of p1('three')

window.console.log("p1:" + x );//print it out
}
main();


推荐阅读