如何将数组转换为不带逗号的字符串,并在没有连接的情况下用空格分隔?

时间:2015-01-18 07:10:49

标签: javascript arrays string

我知道你可以通过循环遍历数组元素和连接来实现这一点。但我正在寻找单线解决方案。 toString()和join()返回带有逗号分隔的元素的字符串。 例如,

var array = ['apple', 'tree'];
var toString = array.toString()    # Will return 'apple,tree' instead of 'apple tree', same for join() method

5 个答案:

答案 0 :(得分:35)

当你在没有传递任何参数的情况下调用join时,,(逗号)被视为默认值,toString内部调用join而不传递任何参数。

所以,传递你自己的分隔符。

var str = array.join(' '); //'apple tree'
// separator ---------^

MDN on Array.join

答案 1 :(得分:6)

将分隔符传递给join

['apple', 'tree'].join(' '); // 'apple tree'

答案 2 :(得分:1)

使用Array.join()方法。删除所有不必要的空格。

var newStr = array.join(' ').trim()

答案 3 :(得分:0)

最简单的方法是使用.join(' ')

但是,如果数组包含零长度的对象,例如null,则以下代码将避免多个空格:

arr.filter(i => [i].join(" ").length > 0).join(" ");

以下是一些用法示例:

Array.prototype.merge = function(char = " ") {
  return this.filter(i => [i].join(" ").length > 0).join(char);
};

console.log(["a", null, null, "b"].merge());

答案 4 :(得分:0)

如果你不想使用 toString() 或 join(),你可以这样做:

for(let i=0;i</*Array*/.length;i++)if(/*Variable*/=="")/*Variable*/+=/*Array*/[i];else /*Variable*/+="/*Separator*/"+/*Array*/[i];

分隔符是在每个项目之间放置的内容。在您的情况下,您可以将其更改为空格。