Форматориванный вывод чисел(фукнция).
Друзья ,нужна ваша помощь!В общем задача такая:Нужно написать функцию, которая принимает первым параметром число ,а вторым количество столбцов для вывода.
Например: mySuperFunction(12,3); Вывод в консоли должен быть таким: 1 5 9 2 6 10 3 7 11 4 8 12 Буду очень благодарен помощи! P.S немного стыдно за такой вопрос... Вот что выходит у меня function printNumbers(number,rows){ var totalNumbesPerLine = 0; var output = ''; var sum = Math.ceil(number / rows); for(var i = 1;i<=number;i++){ totalNumbesPerLine++; output += i; setBreak(); } console.log(output); function setBreak(){ if(totalNumbesPerLine == sum){ output +='\n'; totalNumbesPerLine = 0; }else{ output +=' '; } } } |
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Спойлеры</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <link rel="stylesheet" href="test.css"> </head> <body> <script> var func = function(m, n){ var k = Math.floor(m/n); var foo = ''; for (var i = 1; i<=k; i++) { for(var j = 1; j<=n;j++){ foo += k*(j-1)+i+' '; } console.log(foo+"\r\n"); foo = ""; } }; func(12,3); </script> </body> </html> |
большое спасибо!
|
|
EmperioAf,
а func(13,3); ??? |
var myfunc = function(arr, n){ var i=0, a; function replacer(str, p){a='\n'; if(++i%n)a=' '; return p+a;} return arr.toString().replace(/(\d+)(?:,|$)/g,replacer); } var arr = [1,5,9,2,6,10,3,7,11,4,8,12]; alert(myfunc (arr,3)) alert(myfunc (arr,5)) //Ващет нун число пробелов равнять при большом числе столбцов Либо через табуляцию, либо HTML таблицей) Ибо цифры могут быть и двухзначными и однозначными и т.д. var myfunc = function(arr, n){ var i=0, a; function replacer(str, p){a='\n'; if(++i%n)a='\t'; return p+a;} return arr.toString().replace(/(\d+)(?:,|$)/g,replacer); } var arr = [1,5,9,2,6,10,3,7,11,4,8,12]; alert(myfunc (arr,3)) alert(myfunc (arr,5)) var myfunc = function(arr, n){ var i=0, a, b='', s = String.fromCharCode(160); function replacer(str, p){ b='\n'; a = (s+s+s+s).substr(p.length); if(++i%n)b=''; return a+p+s+b; } return arr.toString().replace(/(\d+)(?:,|$)/g,replacer); } var arr = [1,5,9,2,6,10,3,7,11,4,8,12]; alert(myfunc (arr,3)) alert(myfunc (arr,5)) alert(myfunc (arr,6)) |
Deff,
не обязательно myfunc (arr,3), можно первым аргументом передавать длину массива по которой его создавать (жаль что .fill() не все поддерживают), а потом деление по модулю второго аргумента. |
laimas,
:dance: А я ток допёр, что массив от 1-до 12, я то смотрел по строкам |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 00:44. |