You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

exercise_triangles.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. function makeLine(size, chars = "#") {
  2. let line = "";
  3. for (let i = 0; i < size; i++) {
  4. line += "#";
  5. }
  6. return line
  7. }
  8. function makeDownwardStairs(size) {
  9. let stair = "";
  10. for (let i = 1; i <= size; i++) {
  11. stair += makeLine(i) + "\n";
  12. }
  13. return stair.trim();
  14. }
  15. console.log(makeDownwardStairs(5) + "\n");
  16. /* function makeSpaceLine(numSpaces, numChars) {
  17. return makeLine(numSpaces, ' ') + makeLine(numChars, '#') + makeLine(numSpaces, ' ');
  18. } */
  19. function makeSpaceLine(spaces, hashtags) {
  20. let li = "";
  21. for (let i = 1; i <= spaces; i++) {
  22. li += " ";
  23. }
  24. for (let i = 1; i <= hashtags; i++) {
  25. li += "#";
  26. }
  27. for (let i = 1; i <= spaces; i++) {
  28. li += " ";
  29. }
  30. return li
  31. }
  32. console.log(makeSpaceLine(5, 6) + "\n");
  33. function reverse(str) {
  34. return str.split('').reverse('').join('');
  35. }
  36. function makeIsoscelesTriangle(height, offset = 0) {
  37. isosceles = "";
  38. for (let i = 0; i < height; i++) {
  39. isosceles += makeSpaceLine(height - i - 1, 2 * i + 1, offset) + "\n";
  40. }
  41. return isosceles.trimEnd();
  42. }
  43. console.log(makeIsoscelesTriangle(6));
  44. console.log(reverse(makeIsoscelesTriangle(6)));
  45. function makeDiamond(height) {
  46. return makeIsoscelesTriangle(height) + "\n" + reverse(makeIsoscelesTriangle(height));
  47. }
  48. console.log(makeDiamond(5));