1- async function getA ( ) {
1+ async function getData ( ) {
22 var res = await fetch ( "http://localhost:3000/cities" ) ;
33 var json = await res . json ( ) ;
4+ return json ;
5+ }
6+
7+ async function getA ( data ) {
8+ var json = data ;
49
510 var filtered = json . filter ( function ( entry ) {
611 return entry . province === "małopolskie" ;
@@ -21,36 +26,59 @@ async function getA() {
2126
2227}
2328
24- async function getB ( ) {
25- var res = await fetch ( "http://localhost:3000/cities?name_like=.*(A|a).*a.*" ) ;
26- var json = await res . json ( ) ;
29+ function checkDoubleA ( word ) {
30+ var cnt = 0 ;
31+ for ( var i = 0 ; i < word . length ; i ++ ) {
32+ letter = word . charAt ( i )
33+ if ( letter == 'A' || letter == 'a' )
34+ cnt ++ ;
35+ if ( cnt == 2 )
36+ break ;
37+ }
38+ return cnt == 2
39+ }
40+
41+ async function getB ( data ) {
42+ var json = data
43+
44+ var filtered = json . filter ( function ( entry ) {
45+ return checkDoubleA ( entry . name ) ;
46+ } ) ;
2747
2848 var cities = ""
29- for ( var prop in json ) {
30- if ( ! json . hasOwnProperty ( prop ) ) {
49+
50+ for ( var prop in filtered ) {
51+ if ( ! filtered . hasOwnProperty ( prop ) ) {
3152 continue ;
3253 }
33- cities += json [ prop ] . name + ", "
54+ cities += filtered [ prop ] . name + ", "
3455 }
3556 cities = cities . substr ( 0 , cities . length - 2 ) ;
3657 cities = cities + "."
37-
3858 document . getElementById ( "b-answer" ) . textContent = cities ;
3959
4060
4161}
4262
43- async function getC ( ) {
44- var res = await fetch ( "http://localhost:3000/cities?_sort=dentensity&_order=desc&_limit=5" ) ;
45- var json = await res . json ( ) ;
46- var city = json [ 4 ] . name + '.' ;
47- document . getElementById ( "c-answer" ) . textContent = city ;
63+ async function getC ( data ) {
64+ var json = data ;
65+ var citiesArray = new Array ;
66+ for ( var prop in json ) {
67+ citiesArray . push ( [ json [ prop ] . name , json [ prop ] . people / json [ prop ] . area ] ) ;
68+ }
69+ citiesArray . sort ( function ( a , b ) {
70+ if ( a [ 1 ] < b [ 1 ] )
71+ return 1
72+ else if ( a [ 1 ] > b [ 1 ] )
73+ return - 1
74+ return 0
75+ } ) ;
76+ document . getElementById ( "c-answer" ) . textContent = citiesArray [ 4 ] [ 0 ] ;
4877
4978}
5079
51- async function getD ( ) {
52- var res = await fetch ( "http://localhost:3000/cities" ) ;
53- var json = await res . json ( ) ;
80+ async function getD ( data ) {
81+ var json = data ;
5482
5583 var filtered = json . filter ( function ( entry ) {
5684 return entry . people > 100000 ;
@@ -65,52 +93,57 @@ async function getD() {
6593 cities = cities . substr ( 0 , cities . length - 2 ) + "."
6694
6795 document . getElementById ( "d-answer" ) . textContent = cities ;
68- // var res = fetch("http://localhost:3000/cities",{
69- // method: 'PATCH',
70- // headers:{
71- // 'Content-Type':'application/json'
72- // },
73- // body: JSON.stringify(DATA_WHICH_WE_WANT_TO_SEND)
74- // })
7596}
7697
77- async function getE ( ) {
78- var res1 = await fetch ( "http://localhost:3000/cities?people_gte=80000" ) ;
79- var json1 = await res1 . json ( ) ;
80-
81- var res2 = await fetch ( "http://localhost:3000/cities?people_lte=80000" ) ;
82- var json2 = await res2 . json ( ) ;
83-
84- document . getElementById ( "e-answer1" ) . textContent = "Miast powyżej 80000 mieszkańców jest: " + json1 . length ;
85- document . getElementById ( "e-answer2" ) . textContent = "Miast poniżej 80000 mieszkańców jest: " + json2 . length ;
86- if ( json1 . length > json2 . length ) {
98+ async function getE ( data ) {
99+ var json = data ;
100+ var cntMore = 0 ;
101+ var cntLess = 0 ;
102+ for ( var prop in json ) {
103+ if ( json [ prop ] . people > 80000 )
104+ cntMore ++ ;
105+ else
106+ cntLess ++ ;
107+ }
108+ document . getElementById ( "e-answer1" ) . textContent = "Miast powyżej 80000 mieszkańców jest: " + cntMore ;
109+ document . getElementById ( "e-answer2" ) . textContent = "Miast poniżej 80000 mieszkańców jest: " + cntLess ;
110+ if ( cntMore > cntLess ) {
87111 document . getElementById ( "e-answer3" ) . textContent = "Zatem: więcej jest miast powyżej 80k mieszkańców." ;
88112 } else {
89113 document . getElementById ( "e-answer3" ) . textContent = "Zatem: więcej jest miast poniżej 80k mieszkańców." ;
90114 }
91115
92116}
93117
94- async function getF ( ) {
95- var res = await fetch ( "http://localhost:3000/cities?township_like=P*" ) ;
96- var json = await res . json ( ) ;
97-
118+ async function getF ( data ) {
119+ var json = data ;
98120 var area_sum = 0 ;
99- json . forEach ( element => {
100- area_sum += element . area ;
101- } ) ;
102121
103- document . getElementById ( "f-answer" ) . textContent = area_sum / json . length ;
122+ var citiesP = new Array ;
123+ for ( var prop in json ) {
124+ if ( json [ prop ] . township . charAt ( 0 ) == 'P' )
125+ citiesP . push ( [ json [ prop ] . area , json [ prop ] . township ] ) ;
126+ }
127+ console . log ( citiesP ) ;
128+ citiesPstr = ""
129+ citiesP . forEach ( element => {
130+ area_sum += element [ 0 ] ;
131+ citiesPstr += element [ 1 ] + ", "
132+ } ) ;
133+ citiesPstr = citiesPstr . substr ( 0 , citiesPstr . length - 2 ) + "."
134+ document . getElementById ( "f-answer" ) . textContent = area_sum / citiesP . length ;
135+ document . getElementById ( "f-answer2" ) . textContent = "Są to powiaty (zaczynające się na dużą literę P): " + citiesPstr
104136
105137}
106138
107139async function loadSite ( ) {
108- getA ( ) ;
109- getB ( ) ;
110- getC ( ) ;
111- getD ( ) ;
112- getE ( ) ;
113- getF ( ) ;
140+ var json = await getData ( ) ;
141+ getA ( json ) ;
142+ getB ( json ) ;
143+ getC ( json ) ;
144+ getD ( json ) ;
145+ getE ( json ) ;
146+ getF ( json ) ;
114147}
115148
116149loadSite ( ) ;
0 commit comments