我想获取如下数组输出:
[a,
b,
c,
d,
e,
f]
并将其切成段,然后在换行符上输出每个新数组,如下所示:
[a,b
c,d
e,f]
这是我到目前为止所拥有的:
var data = "";
for (i = 0; i < 4; i+=2) {
data += output.slice(i,2);
}
return data;
我已经为此工作了一段时间,尝试各种不同的方法来使这项工作成功,但没有运气。我是JS的新手,所以我需要一些帮助。
答案 0 :(得分:3)
由于数组中有6个元素,因此需要迭代到6个而不是4个。最好的方法是使用数组的长度,因此,如果长度更改,则无需更改循环。切片时,您还需要\n
如果只想创建一个字符串,则可以在每次迭代中添加一个let output = ['a', 'b', 'c', 'd', 'e', 'f']
var data = "";
for (i = 0; i < output.length; i+=2) {
data += output.slice(i,i+2).join(" ") + "\n";
}
console.log(data);
字符:
{{1}}
答案 1 :(得分:1)
let data = ['a', 'b', 'c', 'd', 'e', 'f']
var output = "";
for (i = 0; i < data.length; i+=2) {
output += data.slice(i, i+2).join(",") + "\n";
}
console.log(`[${output.substring(0, output.lastIndexOf("\n"))}]`);
答案 2 :(得分:1)
假设它们只是字符(1个字符),没有空字符,则可以join
,使用正则表达式/(.+?){2}/g
,map
到{{1 }},最后是char,char
和join
。
\n
答案 3 :(得分:1)
虽然zos0K的答案足以进行切片,但我想提到的一点是,如果您只想输出字符串,而对结果切片数组不做任何其他处理,我建议您直接将它们添加到字符串中,然后然后将其打印出来,以便为每个字符串创建一个新数组。在执行此操作时,Array.prototype.slice每次都会返回一个新数组,并且创建新数组会很快变得昂贵。