首页 > 解决方案 > JS 连接默认是逗号?

问题描述

下面的代码工作正常,
它打印:

pigs1,goats1,sheep1
pigs2,goats2,sheep2
pigs3,goats3,sheep3

我的问题是如何控制单词之间的分隔符(当前默认为逗号)
例如使用磅分隔符打印:

pigs1#goats1#sheep1
pigs2#goats2#sheep2
pigs3#goats3#sheep3

还是没有分隔符?

pigs1goats1sheep1
pigs2goats2sheep2
pigs3goats3sheep3

const animals1 = ['pigs1', 'goats1', 'sheep1'];
const animals2 = ['pigs2', 'goats2', 'sheep2'];
const animals3 = ['pigs3', 'goats3', 'sheep3'];

var buffer = []; 

buffer.push(animals1);
buffer.push(animals2);
buffer.push(animals3);

console.log(buffer.join('\n'));

标签: javascript

解决方案


您可以join在数组上使用该函数,并将任何字符串作为分隔符。

const animals1 = ['pigs1', 'goats1', 'sheep1'];
const animals2 = ['pigs2', 'goats2', 'sheep2'];
const animals3 = ['pigs3', 'goats3', 'sheep3'];

var buffer = []; 

buffer.push(animals1.join('#'));
buffer.push(animals2.join('#'));
buffer.push(animals3.join('#'));

console.log(buffer.join('\n'));

使用空字符串作为无分隔符

animals1.join('') // pigs1goats1sheep1

编辑

如果您在推送它们之前不使用join数组,您将拥有一个包含数组项的数组,您的buffer外观如下所示:

[
  [ 'pigs1', 'goats1', 'sheep1' ],
  [ 'pigs2', 'goats2', 'sheep2' ],
  [ 'pigs3', 'goats3', 'sheep3' ]
]

通过使用 final buffer.join('\n')文档说:

所有数组元素的字符串转换合并为一个字符串。

这意味着作为数组的元素正在转换为字符串

[ 'pigs1', 'goats1', 'sheep1' ].toString() // 'pigs1,goats1,sheep1'

这就是为什么在join将数组推入缓冲区之前必须使用选择分隔符并将数组转换为字符串的原因。


推荐阅读