본문 바로가기

Mini Projects

Wealth List (1)

 

특별히 예쁜 UI이거나, 엄청 유용해서 앞으로도 계속 사용할 프로그램은 아니고..

- fetchAPI를 이용해서 data를 받아와서 동적으로 화면에 표시

  (.then을 이용해서 chain을 만들기 보다는 async/await를 이용해서 깔끔하게 구현)

- forEach, map, sort, filter, reduce와 같은 Array method

를 연습하기 위한 프로젝트

 

 

 

1. get Elements

const main = document.getElementById("main");
const userBtn = document.getElementById("user");
const doubleBtn = document.getElementById("double");
const showBtn = document.getElementById("show-mio");
const sortBtn = document.getElementById("sort");
const calBtn = document.getElementById("calculate-wealth");

3rd Party API를 이용해서 random User를 받아와서 넣을 main 섹션과 나머지 버튼들을 가져왔다.

 

 

 

 

2. get Random User (fetch, async, await)

let data = [];

getRandomUser();


async function getRandomUser() {
  const res = await fetch("https://randomuser.me/api");
  const data = await res.json();
  console.log(data);
}

randomuser.me/api 를 이용해서 random user를 받아올 것이다.

받아온 데이터를 콘솔에 띄워보면

 

우리가 필요한건 results라는 array에서 

name : {title: "Mr", first:"Victor", last:"Madsen"}

이 부분

 

 

 

async function getRandomUser() {
  const res = await fetch("https://randomuser.me/api");
  const data = await res.json();
  const user = data.results[0];
  const newUser = {
    name: `${user.name.first} ${user.name.last}`,
    money: Math.floor(Math.random() * 1000000),
  };
  console.log(newUser);
}

사용자 이름과 재산을 랜덤으로 생성

 

 

 

 

 

3. add users to data array

let data = [];

getRandomUser();
getRandomUser();
getRandomUser();

//get random users and their money

async function getRandomUser() {
  const res = await fetch("https://randomuser.me/api");
  const data = await res.json();
  const user = data.results[0];
  const newUser = {
    name: `${user.name.first} ${user.name.last}`,
    money: Math.floor(Math.random() * 1000000),
  };
  //   console.log(newUser);

  addData(newUser);
}

// add User to data array
function addData(obj) {
  data.push(obj);
  console.log(data);
}

 

data array에 3명의 random users와 그들의 재산이 저장되었다!

 

 

 

 

'Mini Projects' 카테고리의 다른 글

Wealth List (3) - map()  (0) 2020.07.16
Wealth List (2) - forEach  (0) 2020.07.16
Custom Exchage Rate Calculator (fetch API, 3rd Party API)  (0) 2020.07.16
Video and Audio APIs (MDN 정리)  (0) 2020.07.13
Movie Seat Booking (4) make Screen 3D  (0) 2020.07.10