我有一个数组说var arr = [1,2,3,4,5,6,7,8]
现在我做一个像下面的联接
arr.join("|");
我的要求是这个数组应该在每个第三个元素之后包含新行。像
1|2|3
4|5|6
7|8|9
我们将不胜感激。
谢谢
答案 0 :(得分:2)
arr.join("|").replace(/([^|]+?\|[^|]+?\|[^|]+?)\|/g, "$1\n");
答案 1 :(得分:1)
一种可能的方法:
i.join('|').replace(/\|/g, function(){
var c = 0;
return function(str) {
return ++c % 3 ? str : '\n';
}
}());
replace
基本上用|
替换字符串中的每三分之一\n
。
答案 2 :(得分:0)
您应该将阵列切割成多个子阵列,这些子阵列可以单独连接在一起:
var arr = [1,2,3,4,5,6,7,8,9];
// temporary array to push sliced and joined sub array into
var arr_ = [], i;
for (i = 0; i < arr.length; i = i + 3) {
// slice range of 3 element from arr, join and push into arr_
arr_.push(arr.slice(i, i + 3).join("|"));
}
// join by newline
arr_.join("\n");
您可以提取3
asvariable来改变列宽。
答案 3 :(得分:-1)
如果您有数字数组:
arr.join("|").match(/(\d+\|\d+\|\d+)/g).join("\n");