iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
0
Modern Web

ES666系列 第 20

ES6 常用範例4 - Day20

返回給定毫秒數的可讀格式。

除以ms適當的值以獲得適當的值day,hour,minute,second和millisecond。使用Object.entries()與Array.filter()只保留非零值。使用Array.map()創建的字符串為每個值,適當複數化。使用String.join(', ')的值組合成一個字串。

const formatDuration = ms => {
  if (ms < 0) ms = -ms;
  const time = {
    day: Math.floor(ms / 86400000),
    hour: Math.floor(ms / 3600000) % 24,
    minute: Math.floor(ms / 60000) % 60,
    second: Math.floor(ms / 1000) % 60,
    millisecond: Math.floor(ms) % 1000
  };
  return Object.entries(time)
    .filter(val => val[1] !== 0)
    .map(val => val[1] + ' ' + (val[1] !== 1 ? val[0] + 's' : val[0]))
    .join(', ');
};

上一篇
ES6 常用範例3 - Day19
下一篇
ES6 常用範例5 - Day21
系列文
ES66624

尚未有邦友留言

立即登入留言