본문 바로가기

JavaScript30 Challenge

[JavaScript30] Day 18

Adding Up Times with Reduce

 

 

const timeNodes = document.querySelectorAll('[data-time]');
console.log(timeNodes);

 

const timeNodes = document.querySelectorAll('[data-time]');
const seconds = timeNodes.map(node => node.dataset.time);

 

const timeNodes = Array.from(document.querySelectorAll('[data-time]'));
const seconds = timeNodes.map(node => node.dataset.time);

 

0은 분이고 1은 초이다

 

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;
  console.log(mins, secs)
});

 

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;
  console.log(mins, secs)
}).reduce((total, vidSeconds) => total + vidSeconds);

 

 

Math.floor는 내림이다.

소수점 아래로는 버려지게 되어 (11 / 5)에서 2일때 2가 나오게 된다.

 

%는 계산하고 난 나머지를 나타낸다.

 

74분이라고했을 때 60분으로 나누면

시간은 나눈 값을 내림한것, 분은 나누고 난 나머지로

1시간 13분이 나온다.

 

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;
  console.log(mins, secs)
}).reduce((total, vidSeconds) => total + vidSeconds);

let secondsLeft = seconds;
const hours = Math.floor(secondsLeft / 3600);
secondsLeft = secondsLeft % 3600;
console.log(secondsLeft);

 

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;
  console.log(mins, 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);

 

 

JavaScript30 강의를 보고 공부한 글입니다. (https://javascript30.com/)

'JavaScript30 Challenge' 카테고리의 다른 글

[JavaScript30] Day 24  (0) 2020.08.18
[JavaScript30] Day 22  (0) 2020.08.17
[JavaScript30] Day 17  (0) 2020.07.21
[JavaScript30] Day 16  (0) 2020.07.20
[JavaScript30] Day 15  (0) 2020.06.25