Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Park {
- constructor (name, builtYear, treesNum, area) {
- this.name = name;
- this.builtYear = builtYear;
- this.treesNum = treesNum;
- this.area = area;
- }
- treeDensity() {
- return (this.treesNum / this.area);
- }
- age() {
- const recentlyYear = new Date().getFullYear()
- return (recentlyYear - this.builtYear);
- }
- }
- class Street {
- constructor(name, builtYear, length) {
- this.name = name;
- this.builtYear = builtYear;
- this.length = length;
- }
- size() {
- var size = this.length;
- switch (true) {
- case size < 11:
- return 'tiny';
- case size > 10 && size < 16:
- return 'small';
- case size > 15 && size < 26:
- return 'normal';
- case size > 25 && size < 61:
- return 'big';
- case size > 60:
- return 'huge';
- default:
- return 'normal';
- }
- }
- }
- const parks = [
- new Park('Park Fikuśny', 1990, 1200, 5),
- new Park('Park Miłosza', 2005, 750, 2),
- new Park('Park Familijny', 2015, 2100, 10)
- ];
- const streets = [
- new Street('Ułanów', 1988, 30),
- new Street('Podkarpacka', 1980, 92),
- new Street('Zamojska', 1999, 13),
- new Street('Kruświców', 1998, 5)
- ];
- console.log(`--------PARKS REPORT--------`);
- // 1. Tree density for each park
- parks.forEach(park => {
- console.log(`${park.name} ma zageszczenie ${park.treeDensity()} drzew na kilometr kwadratowy`);
- });
- // 2. Avg age of each park (all ages/num parks)
- var sumAgeParks, avgAgeParks;
- sumAgeParks = 0;
- for (i=0; i < parks.length; i++) {
- sumAgeParks += parks[i].age();
- }
- avgAgeParks = sumAgeParks / parks.length
- console.log(`Nasze ${parks.length} parki, srednia maja ${avgAgeParks.toFixed(2)} lat.`)
- // 3. Park over 1000 trees
- var parksOver1000Arr, parksOver1000str;
- parksOver1000Arr = [];
- for (i=0; i < parks.length; i++) {
- if (parks[i].treesNum > 1000){
- parksOver1000Arr.push(parks[i].name);
- }
- }
- parksOver1000str = parksOver1000Arr.join(', ');
- console.log(`Parki powyzej 1000 drzew to: ${parksOver1000str}.`)
- console.log(`--------STREETS REPORT--------`);
- // 4. Total and avg street lenght
- var sumStreetLength, avgStreetLength;
- sumStreetLength = 0;
- for (i=0; i < streets.length; i++) {
- sumStreetLength += streets[i].length;
- }
- avgStreetLength = sumStreetLength / streets.length
- console.log(`Nasze ${streets.length} ulice, srednia maja ${avgStreetLength.toFixed(2)}km dlugosci, a srednia dlugosc ulicy wynosi ${sumStreetLength}km`);
- // 5. Size classf street: tiny/small/normal/bug/huge if size === unknown = def normal
- streets.forEach(street => {
- console.log(`Ulica ${street.name}, zbudowana w ${street.builtYear} roku, jej rozmiar to: ${street.size()}`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement