2014-12-22 2 views
-1

У меня есть массив сказать var arr = [1,2,3,4,5,6,7,8]Ввод новой линии между элементами массива в JavaScript,

Теперь я объединения как Приводим

arr.join("|"); 

Мое требование заключается в том, что этот массив должен содержать новую строку после каждый третий элемент. Как

1|2|3 
4|5|6 
7|8|9 

Пособие будет оценено по достоинству.

Благодаря

+0

'массив должен содержать новую строку после каждого третьего element.'?!?! – thefourtheye

+1

Итак, вам нужно вставить символ \ n char каждые 5 символов в вашей строке – Hacketo

+0

, разделенный на куски 3, соединить каждый с '' ', а затем присоединиться к кускам' \ n'? Какой код вы пробовали, в чем проблема? – Bergi

ответ

2
arr.join("|").replace(/([^|]+?\|[^|]+?\|[^|]+?)\|/g, "$1\n"); 
1

Один из возможных подходов:

i.join('|').replace(/\|/g, function(){ 
    var c = 0; 
    return function(str) { 
    return ++c % 3 ? str : '\n'; 
    } 
}()); 

replace по существу заменяет каждый третий | в строке с \n.

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 изменять ширину столбца.

-1

Если у вас есть массив цифр:

arr.join("|").match(/(\d+\|\d+\|\d+)/g).join("\n"); 
Смежные вопросы