在javascript中,如何将数组转换为不带逗号的字符串,并用空格分隔,而无需连接?

在javascript中,如何将数组转换为不带逗号的字符串,并用空格分隔,而无需连接?,javascript,arrays,string,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 当调用join而不传递任何参数时,,(逗号)被视为默认值,to

我知道可以通过循环数组元素和连接来实现这一点。但我正在寻找一种线性解决方案。toString()和join()返回元素之间用逗号分隔的字符串。 比如说,

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

当调用
join
而不传递任何参数时,
(逗号)被视为默认值,
toString
在内部调用
join
而不传递任何参数

所以,请传递您自己的分隔符

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

将分隔符传递到
加入

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

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

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

arr.filter(i=>[i]。连接(“”)。长度>0。连接(“”)

下面是一些示例用法:

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

console.log(["a", null, null, "b"].merge());
使用Array.join()方法。修剪以删除任何不必要的空白


var newStr=array.join(“”).trim()

如果不想使用toString()或join(),可以执行以下操作:

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

for(让i=0;iIt’令人惊讶的是,有多少次
console.log()
让你意识到一个函数并没有达到你所期望的效果……有没有办法显示[apple][tree]呢?如果我们只显示array.join(“”)。那么就不需要修剪了。