Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. class Park {
  2. constructor (name, builtYear, treesNum, area) {
  3. this.name = name;
  4. this.builtYear = builtYear;
  5. this.treesNum = treesNum;
  6. this.area = area;
  7. }
  8.  
  9. treeDensity() {
  10. return (this.treesNum / this.area);
  11. }
  12.  
  13. age() {
  14. const recentlyYear = new Date().getFullYear()
  15. return (recentlyYear - this.builtYear);
  16. }
  17.  
  18. }
  19. class Street {
  20. constructor(name, builtYear, length) {
  21. this.name = name;
  22. this.builtYear = builtYear;
  23. this.length = length;
  24. }
  25.  
  26. size() {
  27. var size = this.length;
  28. switch (true) {
  29. case size < 11:
  30. return 'tiny';
  31. case size > 10 && size < 16:
  32. return 'small';
  33. case size > 15 && size < 26:
  34. return 'normal';
  35. case size > 25 && size < 61:
  36. return 'big';
  37. case size > 60:
  38. return 'huge';
  39. default:
  40. return 'normal';
  41. }
  42. }
  43. }
  44.  
  45.  
  46. const parks = [
  47. new Park('Park Fikuśny', 1990, 1200, 5),
  48. new Park('Park Miłosza', 2005, 750, 2),
  49. new Park('Park Familijny', 2015, 2100, 10)
  50. ];
  51.  
  52. const streets = [
  53. new Street('Ułanów', 1988, 30),
  54. new Street('Podkarpacka', 1980, 92),
  55. new Street('Zamojska', 1999, 13),
  56. new Street('Kruświców', 1998, 5)
  57. ];
  58.  
  59. console.log(`--------PARKS REPORT--------`);
  60. // 1. Tree density for each park
  61.  
  62. parks.forEach(park => {
  63. console.log(`${park.name} ma zageszczenie ${park.treeDensity()} drzew na kilometr kwadratowy`);
  64. });
  65.  
  66. // 2. Avg age of each park (all ages/num parks)
  67.  
  68. var sumAgeParks, avgAgeParks;
  69. sumAgeParks = 0;
  70. for (i=0; i < parks.length; i++) {
  71. sumAgeParks += parks[i].age();
  72. }
  73. avgAgeParks = sumAgeParks / parks.length
  74.  
  75. console.log(`Nasze ${parks.length} parki, srednia maja ${avgAgeParks.toFixed(2)} lat.`)
  76.  
  77. // 3. Park over 1000 trees
  78. var parksOver1000Arr, parksOver1000str;
  79. parksOver1000Arr = [];
  80. for (i=0; i < parks.length; i++) {
  81. if (parks[i].treesNum > 1000){
  82. parksOver1000Arr.push(parks[i].name);
  83. }
  84. }
  85. parksOver1000str = parksOver1000Arr.join(', ');
  86. console.log(`Parki powyzej 1000 drzew to: ${parksOver1000str}.`)
  87.  
  88. console.log(`--------STREETS REPORT--------`);
  89. // 4. Total and avg street lenght
  90.  
  91. var sumStreetLength, avgStreetLength;
  92. sumStreetLength = 0;
  93. for (i=0; i < streets.length; i++) {
  94. sumStreetLength += streets[i].length;
  95. }
  96. avgStreetLength = sumStreetLength / streets.length
  97.  
  98. console.log(`Nasze ${streets.length} ulice, srednia maja ${avgStreetLength.toFixed(2)}km dlugosci, a srednia dlugosc ulicy wynosi ${sumStreetLength}km`);
  99.  
  100. // 5. Size classf street: tiny/small/normal/bug/huge if size === unknown = def normal
  101.  
  102. streets.forEach(street => {
  103. console.log(`Ulica ${street.name}, zbudowana w ${street.builtYear} roku, jej rozmiar to: ${street.size()}`);
  104. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement