我想在找到解决方案之后添加表值 但是我的老师不喜欢它,你有更优雅的方式吗?
我的代码:https://pastebin.com/0ZQBgU7b
我的解决方案:
const $ = document.querySelectorAll.bind(document);
$('.total')[0].textContent =
[...$('.ages')]
.map(td => parseInt(td.textContent))
.filter(ages => ages >= 18)
.reduce((total, ages) => total + ages, 0);
P.S。 我的老师不喜欢它。
答案 0 :(得分:3)
你正在使用3个循环,其中一个就足够了。这里不需要地图和过滤器:
const $ = document.querySelectorAll.bind(document);
$('.total')[0].textContent =
[...$('.ages')].reduce((total, ages) =>
total + (parseInt(ages, 10) >= 18 ? parseInt(ages, 10) : 0), 0);
在这种情况下,使用Array.from()
代替传播操作符也是一个好主意。
Array.from($('.ages')).reduce(...)