数组循环内的javascript切片

时间:2018-11-19 00:51:51

标签: javascript for-loop while-loop slice

我想获取如下数组输出:

 [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的新手,所以我需要一些帮助。

4 个答案:

答案 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}/gmap到{{1 }},最后是char,charjoin

\n

答案 3 :(得分:1)

虽然zos0K的答案足以进行切片,但我想提到的一点是,如果您只想输出字符串,而对结果切片数组不做任何其他处理,我建议您直接将它们添加到字符串中,然后然后将其打印出来,以便为每个字符串创建一个新数组。在执行此操作时,Array.prototype.slice每次都会返回一个新数组,并且创建新数组会很快变得昂贵。