我正在尝试编写一个返回“ Hello,World”字符串的函数,但要求每行只能有2个字符。在我的函数中,我使用的是模板文字,并且想忽略换行符\ n。谁能建议最好的解决方案?
代码::
f=_=>`H
el
lo
,w
or
ld
!`
错误::
Expected: 'Hello, world!', instead got: 'H\nel\nlo\n,w\nor\nld\n!'
答案 0 :(得分:1)
此方法使用substring()
:
Javascript:
const output = document.getElementById('demo');
function trimString(str, lineLength) {
for (var i=0; i<str.length; i+=lineLength) {
output.innerHTML += str.substring(i, i+lineLength);
output.innerHTML += "<br />";
}
}
trimString('Hello World', 2);
不要忘记输出:
<p id="demo"></p>
工作原理:
这可以通过调用函数trimString(str, lineLength);
来工作
-用引号引起来的字符串替换str
。
--用每行的字符数替换lineLength
。
答案 1 :(得分:0)
您的函数可以仅使用replace
替换换行符:
f=_=>`H
el
lo
,w
or
ld
!`
console.log(f().replace(/\n/g, ''))
答案 2 :(得分:0)
您可以尝试:
function makeTwoCharPerLine(input) {
return input.split('').map((char, index) => {
return (index + 1) % 2 === 0 ?
`${char}${String.fromCharCode(13)}${String.fromCharCode(10)}` : char;
}).join('');
}
答案 3 :(得分:0)
就像语法父C一样,JavaScript允许您使用反斜杠字符在源代码中转义换行符:
if
在这里,由于紧接f=
_=>
"\
H\
e\
l\
l\
o\
,\
W\
o\
r\
l\
d\
!\
";
document.write(f());
之前,实际源中的每个换行符都将被忽略,从而允许字符串继续在源中的另一行,而在父级中保留一行。