【发布时间】:2018-05-31 06:17:15
【问题描述】:
我想收集所有带有文本内容flexbox的li,并以秒为单位减少总时间并返回它。我做到了,但是如何将代码重写为一个 reduce 函数。结果应该是以秒为单位的数据时间总和
html
<li data-time="3:07">Flexbox Video</li>
<li data-time="5:59">Redux Video</li>
...
js
const listItems = [...document.querySelectorAll('li')];
const flexBoxItem = listItems
.filter(item => item.textContent.includes('Flexbox'))
.map(item => item.dataset.time)
.map(item => {
let parts = item.split(':').map(i => parseFloat(i))
return (parts[0] * 60) + parts[1]
})
.reduce((prev, next) => prev + next, 0)
【问题讨论】:
标签: javascript arrays ecmascript-6 reduce