matrix printer

node v8.17.0
version: 1.0.0
endpointsharetweet
let strMkr = (length,char) => { // makes string of given length from given chars let string = ``; for(var i=0; i<length; i++) string += char; return string; }
function lenArr(mrx) { let mLen = []; // Array with max length in collumns as elements for(var m=0, len=0, lVal=0; m<mrx[0].length; m++) { for(var n in mrx) { let eLen = (mrx[n][m]).toString().length; lVal = eLen ? lVal < eLen : lVal; if(len < eLen) len = eLen; } mLen.push(len); len-=len; } return mLen; }
function dim(arr) { return [arr.length,arr[0].length]; } function pushArr(A,B) { // A = good arr, B = arr to push on A's level let newArr = []; if(dim(B)[1] === undefined) { if(dim(B)[0] == dim(A)[0]) { for(var m in B) { newArr.push([]); newArr[m].push([]); newArr[m][0].push(B[m]); } } else console.log("wrong dimensions a"); } else console.log("wrong dimensions b"); return newArr; }
let A = [ [ 1, 2, 3 ], [ 23, 12345, 678 ], [ 1, 23, 345 ] ]; let B = [ 5, 3417, 0 ]; let outMsg = ""; for(var n in A) { for(var m in A[n]) { let currLenA = (A[n][m]).toString().length; let spcA = lenArr(A)[m]-currLenA; outMsg += `${strMkr(spcA," ")}${A[n][m]}`; if(n<A.length) outMsg += " "; } let C = pushArr(A,B); for(var m in C[n]) { let currLenC = (C[n][m]).toString().length; let spcC = lenArr(C)[m]-currLenC; outMsg += `| ${strMkr(spcC," ")}${C[n][m]}`; if(n<C.length) outMsg += " "; } //outMsg += "| " + B[n]; // outMsg += "\n"; } console.log(outMsg);
Loading…

no comments

    sign in to comment