javascript - 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'));
解决方案
您可以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
将数组推入缓冲区之前必须使用选择分隔符并将数组转换为字符串的原因。
推荐阅读
- python - 计算不使用 for 循环的 pandas 数据框列
- c# - 如何更新数据库中的二进制数据
- java - 如何使用改造和 mvvm 加载多个页面
- twitter-bootstrap - 动态设置容器宽度
- javascript - 角度拖放图标到画布
- laravel - laravel echo server 客户端无法认证,得到 HTTP 状态 302
- java - 在“普通”类中声明通用方法及其返回
- wpf - 选项卡不在视图中时未初始化 WPF ChromiumWebBrowser
- python - 无法将 1.0 转换为 dtype int32 的 EagerTensor
- angular - 如何修复无限加载的 Angular 9 网站?