【发布时间】:2018-01-10 01:57:02
【问题描述】:
我想知道是否有更多“功能性”的方式来做到这一点。意思是,而不是必须做这样的事情:
let flag = true;
[1, 2, 3].forEach(n => if (n > 2) flag = false);
return flag;
我正在寻找更接近这个的东西:
return [1, 2, 3].overEvery(n => n > 2);
我找到的最接近的解决方案是 Array.prototype.every 函数,但它会在返回 false 时终止,不会遍历集合中的其余值。
我不想终止的原因是因为我想遍历表单中的所有字段以显示所有表单错误,然后在表单的 onsubmit 处理程序中返回 true 或 false。
【问题讨论】:
-
Array.prototype.forEach(function(item) { /* each Array item available here as item */ }) -
除了@connexo 的建议,
Array.prototype.reduce()可能是一个选项。 -
@ChrisRiebschlager
every()立即返回第一个 false 值。 -
如果您解释了您希望返回值的样子,将会有所帮助。你想要一个布尔数组吗?如果是,简单:
[1, 2, 3].map(n => n > 2)如果不是,那是什么?
标签: javascript html ecmascript-6 lodash