World Factbook: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
| (11 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
==Get a button for each letter==  | ==Get a button for each letter==  | ||
* Show a button for each letter that a country can begin with  | * Show a button for each letter that a country can begin with  | ||
* You can use a [  | * You can use a [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set Set] to remove duplicates from a list.  | ||
<div class=qu>  | <div class=qu>  | ||
<pre class=usr>  | <pre class=usr>  | ||
| Line 25: | Line 25: | ||
        b.innerText = a;  |         b.innerText = a;  | ||
        document.body.append(b);  |         document.body.append(b);  | ||
     }  | |||
  });  | |||
</pre>  | |||
</div>  | |||
==Get a button for each continent==  | |||
* Show a button for each continent  | |||
<div class=qu>  | |||
<pre class=usr>  | |||
</pre>  | |||
<pre class=ans>  | |||
fetch('/worldl.json')  | |||
  .then((r)=>r.json())  | |||
  .then((r)=>{  | |||
     let c = [...new Set(r.map(c=>c.continent))];  | |||
     c.sort();  | |||
     for(let a of c){  | |||
       let b = document.createElement('button');  | |||
       b.innerText = a;  | |||
       document.body.append(b);  | |||
     }  | |||
  });  | |||
</pre>  | |||
</div>  | |||
==Pick a random country from Africa==  | |||
* Use Math.random() to pick a country at random  | |||
* Note that because of the way the scoring works you should not expect to get 100%  | |||
The sample code shows a random country beginning with 'A'  | |||
<div class=qu>  | |||
<pre class=usr>  | |||
fetch('/worldl.json')  | |||
  .then((r)=>r.json())  | |||
  .then((r)=>{  | |||
     let alist = r.filter(c=>c.name[0]==='A');  | |||
     let randomNumber = Math.floor(Math.random()*alist.length);  | |||
     let randomCountry = alist[randomNumber];  | |||
     document.body.innerText = randomCountry.name;  | |||
  });  | |||
</pre>  | |||
<pre class=ans>  | |||
fetch('/worldl.json')  | |||
  .then((r)=>r.json())  | |||
  .then((r)=>{  | |||
     let africa = r.filter(c=>c.continent==='Africa');  | |||
     let randomNumber = Math.floor(Math.random()*africa.length);  | |||
     let randomCountry = africa[randomNumber];  | |||
     document.body.innerText = randomCountry.name;  | |||
  });  | |||
</pre>  | |||
</div>  | |||
==Pick four random countries==  | |||
* A large country is one with a population of at least 100 million  | |||
* Pick four large countries, without repetition  | |||
 Bangladesh  | |||
 Brazil  | |||
 China  | |||
 India  | |||
 Indonesia  | |||
 Japan  | |||
 Mexico  | |||
 Nigeria  | |||
 Pakistan  | |||
 Russia  | |||
 United States  | |||
*One way to achieve this is to take a copy of the original list then sort it into a random order.  | |||
**You can attach a random number ot each country, then sort by that value.  | |||
*You can then take the first four elements of the sorted list.  | |||
<div class=qu>  | |||
<pre class=usr>  | |||
fetch('/worldl.json')  | |||
  .then((r)=>r.json())  | |||
  .then((r)=>{  | |||
     let alist = r.filter(c=>c.population >= 100000000);  | |||
     for(let c of alist){  | |||
       c.rand = Math.random();  | |||
     }  | |||
     alist.sort((a,b)=>a.rand-b.rand);  | |||
     for(let i=0;i<alist.length;i++){  | |||
       let d = document.createElement('div');  | |||
       d.innerText = alist[i].name;  | |||
       document.body.append(d);  | |||
     }  | |||
  });  | |||
</pre>  | |||
<pre class=ans>  | |||
fetch('/worldl.json')  | |||
  .then((r)=>r.json())  | |||
  .then((r)=>{  | |||
     let alist = r.filter(c=>c.population >= 100000000);  | |||
     for(let c of alist){  | |||
       c.rand = Math.random();  | |||
     }  | |||
     alist.sort((a,b)=>a.rand-b.rand);  | |||
     for(let i=0;i<4;i++){  | |||
       let d = document.createElement('div');  | |||
       d.innerText = alist[i].name;  | |||
       document.body.append(d);  | |||
      }  |       }  | ||
   });  |    });  | ||
</pre>  | </pre>  | ||
</div>  | </div>  | ||
Latest revision as of 18:07, 28 July 2022
Get a button for each letter
- Show a button for each letter that a country can begin with
 - You can use a Set to remove duplicates from a list.
 
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let letters = r.map(c=>c.name[0]);
     for(let a of letters){
       let b = document.createElement('button');
       b.innerText = a;
       document.body.append(b);
     }
  });
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let letters = new Set(r.map(c=>c.name[0]));
     for(let a of letters){
       let b = document.createElement('button');
       b.innerText = a;
       document.body.append(b);
     }
  });
Get a button for each continent
- Show a button for each continent
 
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let c = [...new Set(r.map(c=>c.continent))];
     c.sort();
     for(let a of c){
       let b = document.createElement('button');
       b.innerText = a;
       document.body.append(b);
     }
  });
Pick a random country from Africa
- Use Math.random() to pick a country at random
 - Note that because of the way the scoring works you should not expect to get 100%
 
The sample code shows a random country beginning with 'A'
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let alist = r.filter(c=>c.name[0]==='A');
     let randomNumber = Math.floor(Math.random()*alist.length);
     let randomCountry = alist[randomNumber];
     document.body.innerText = randomCountry.name;
  });
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let africa = r.filter(c=>c.continent==='Africa');
     let randomNumber = Math.floor(Math.random()*africa.length);
     let randomCountry = africa[randomNumber];
     document.body.innerText = randomCountry.name;
  });
Pick four random countries
- A large country is one with a population of at least 100 million
 - Pick four large countries, without repetition
 
Bangladesh Brazil China India Indonesia Japan Mexico Nigeria Pakistan Russia United States
- One way to achieve this is to take a copy of the original list then sort it into a random order.
- You can attach a random number ot each country, then sort by that value.
 
 - You can then take the first four elements of the sorted list.
 
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let alist = r.filter(c=>c.population >= 100000000);
     for(let c of alist){
       c.rand = Math.random();
     }
     alist.sort((a,b)=>a.rand-b.rand);
     for(let i=0;i<alist.length;i++){
       let d = document.createElement('div');
       d.innerText = alist[i].name;
       document.body.append(d);
     }
  });
fetch('/worldl.json')
  .then((r)=>r.json())
  .then((r)=>{
     let alist = r.filter(c=>c.population >= 100000000);
     for(let c of alist){
       c.rand = Math.random();
     }
     alist.sort((a,b)=>a.rand-b.rand);
     for(let i=0;i<4;i++){
       let d = document.createElement('div');
       d.innerText = alist[i].name;
       document.body.append(d);
     }
  });