언어별 학습 자료/Javascript
"# JavaScript 30" 강의 - 18. Adding Up Times with Reduce
CarpediemMementomori
2020. 10. 22. 16:18
학습일자
2020.10.22
학습내용
전체 시간을 합하여, 시, 분, 초로 표시하기
알게된 점
- 항상 연산을 하려고 하는 경우 반환 값의 type이 string이 아니고 number인지 확인하기/ 만일 아니라면 parseFloat으로 문자 -> 숫자로 변형 후 연산해야함
<script>
const timeNodes = Array.from(document.querySelectorAll("[data-time]"));
const seconds = timeNodes
.map((node) => node.dataset.time)
.map((timeCode) => {
//split 까지만 하면 숫자가 아닌 문자로 반환하므로 연산할 수가 없음.
//따라서, parseFloat 함수를 통해 문자 -> 숫자로 변형해줘야 함
const [mins, secs] = timeCode.split(":").map(parseFloat);
return mins * 60 + secs;
})
.reduce((total, vidSeconds) => total + vidSeconds);
let secondsLeft = seconds;
const hours = Math.floor(secondsLeft / 3600);
secondsLeft = secondsLeft % 3600;
const mins = Math.floor(secondsLeft / 60);
secondsLeft = secondsLeft % 60;
console.log(hours, mins, secondsLeft);
</script>