From 7f92cbe9910b6c660b669ba2c285fbf47ede8ef9 Mon Sep 17 00:00:00 2001 From: Ghassan Nasr Date: Mon, 29 Jun 2020 16:45:15 -0400 Subject: [PATCH 1/3] implemented three functions: getLine, getBox, getUpperLeftTriangle --- assets/js/shapes.js | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/assets/js/shapes.js b/assets/js/shapes.js index e4351ba..b124351 100644 --- a/assets/js/shapes.js +++ b/assets/js/shapes.js @@ -1,31 +1,54 @@ function getLine(length) { - // TODO - write method definition here + // TODO - write method definition here + var str = ""; + for(var i=0; i 0; i--) { + for (var k = 0; k < i; k++) { + str += "*"; + } + if(i != 1) { + str += "\n"; + } +} +return str; } function getPyramid(length) { - // TODO - write method definition here + // TODO - write method definition here } function getCheckerboard(width, height) { - // TODO - write method definition here + // TODO - write method definition here } From e1c9af9b3a30f56ad9a7a993dc9e0ac94d73982c Mon Sep 17 00:00:00 2001 From: Ghassan Nasr Date: Mon, 29 Jun 2020 19:20:13 -0400 Subject: [PATCH 2/3] All functions passed the tests, some implementations are more elegant than others --- assets/js/shapes.js | 64 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/assets/js/shapes.js b/assets/js/shapes.js index b124351..53e249e 100644 --- a/assets/js/shapes.js +++ b/assets/js/shapes.js @@ -25,30 +25,76 @@ function getBox(width, height) { function getBottomLeftTriangle(length) { // TODO - write method definition here + var str = ""; + for (var i = 1; i <= length; i++) { + for (var j = 0; j < i; j++) { + str += "*"; + } + if (i != length) { + str += "\n"; + } + } + + return str; } + function getUpperLeftTriangle(length) { // TODO - write method definition here -var str = ""; -for (var i = length; i > 0; i--) { - for (var k = 0; k < i; k++) { - str += "*"; - } - if(i != 1) { - str += "\n"; + var str = ""; + for (var i = length; i > 0; i--) { + for (var k = 0; k < i; k++) { + str += "*"; + } + if (i != 1) { + str += "\n"; + } } -} -return str; + return str; } function getPyramid(length) { // TODO - write method definition here + var str = ""; + for (var layer = 1; layer <= length; layer++) { + + //add leading spaces + for (var j = 0; j < length - layer; j++) { + str += " "; + } + //add asterisks + for (var j = 0; j < 2 * layer - 1; j++) { + str += "*"; + } + //addiing spaces + for (var j = 0; j < length - layer; j++) { + str += " "; + } + str += (layer Date: Tue, 30 Jun 2020 07:03:44 -0400 Subject: [PATCH 3/3] made code much more elegant and used ternary operator --- assets/js/shapes.js | 105 ++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 58 deletions(-) diff --git a/assets/js/shapes.js b/assets/js/shapes.js index 53e249e..3ec6d71 100644 --- a/assets/js/shapes.js +++ b/assets/js/shapes.js @@ -1,7 +1,7 @@ function getLine(length) { - // TODO - write method definition here - var str = ""; - for(var i=0; i 0; i--) { - for (var k = 0; k < i; k++) { - str += "*"; - } - if (i != 1) { - str += "\n"; - } - } + + let str = ""; + + for(let level=length; level > 0; level--) + str += getLine(level) + (level!=1 ? "\n" : ""); + return str; } function getPyramid(length) { - // TODO - write method definition here - var str = ""; - for (var layer = 1; layer <= length; layer++) { - //add leading spaces - for (var j = 0; j < length - layer; j++) { - str += " "; - } - //add asterisks - for (var j = 0; j < 2 * layer - 1; j++) { - str += "*"; - } - //addiing spaces - for (var j = 0; j < length - layer; j++) { - str += " "; - } - str += (layer