본문 바로가기
챌린지/JavaScript 30일 챌린지

[JavaScript 30일 챌린지] : 18일차

by 오주현 2022. 2. 14.
반응형

18일차


<script>

    const timeNodes = Array.from(document.querySelectorAll('[data-time]'));

    const seconds = timeNodes
      .map(node => node.dataset.time)
      .map(timeCode => {
        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>

reduce와 map을 통해 동영상의 모든 시간을 다 합쳐서 나타내는 코드였다.

반응형

댓글