function updateDOM(providedData = data) {
main.innerHTML = "<h2><strong>Person</strong> Wealth</h2>";
providedData.forEach((element) => {
const div = document.createElement("div");
div.classList.add("person");
div.innerHTML = `<strong>${element.name}</strong> ${formatMoney(
element.money
)}`;
main.appendChild(div);
});
}
- 함수의 parameter
updateDOM함수를 호출할 때, parameter가 없으면 저번 시간에 생성했던 data array가 들어온다.
- main.innerHTML 부분을 원래 가장 기본 코드로 넣어줘서 main을 clear
- parameter로 들어온 data array를 forEach Method를 사용해서 loop through
한 element가 들어올 때마다 div를 만들어 주고 이름과 가진 재산을 div에 넣어준 후
main의 child로 넣어주면 화면에 나타남!
- 재산 같은 경우는 data array에 그냥 숫자(eg. 12345689)로만 저장 되어 있어서 실제 돈의 형태로 바꿔주기 위해 함수를 새로 만들었다.
// format number as money
function formatMoney(number) {
return "$" + number.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, "$&,");
}
https://stackoverflow.com/questions/149055/how-to-format-numbers-as-currency-string
여기를 참고.
paramet와 앞에 달러 싸인만 넣어줘서 return 해주면
123456 => $123,456
의 형태로 바껴서 화면에 나타난다.
userBtn.addEventListener("click", getRandomUser);
add User 버튼을 눌러서 User를 추가 시키고 싶을 때,
event listener를 만들면 된다.
이미 getRandomUser 함수를 만들어 놨기 때문에 따로 코드를 더 작성할 필요 없다.
(getRandomUser을 통해서 알아서 user data를 받아와서 array에 저장하고 DOM을 update시켜준다.)
'Mini Projects' 카테고리의 다른 글
Wealth List (4) - sort () (0) | 2020.07.16 |
---|---|
Wealth List (3) - map() (0) | 2020.07.16 |
Wealth List (1) (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 |