首页 > 解决方案 > Javascript:代码重构为单行而不是多行 for 循环

问题描述

我是 react 和 javascript 的新手,试图将下面的代码重构为更少的行:

for (const email of processedData) {
     if (validateEmail(email)) {
          count++;
          if (count === 100) {
             break;
           }
      }
 }

processesData 是电子邮件列表,尝试使用 reduce 但在 reduce 中,一旦我有 count === 100,我就无法中断

谢谢

标签: javascript

解决方案


Array.prototype.some将在您的数组元素上运行一个函数,直到该函数返回 true。

然后你可以做这样的事情:

编辑:我的第一个建议的单行版本。

var processedData = ["joe@test.co.uk", "john@test.co.uk", "jack@test.com", "jane@test.com", "amy@test.com"];
var count = 0;

processedData.some(email => validateEmail(email) && (++count === 2));
 
function validateEmail(email) {
  console.log("validateEmail " + email);
  return (email.indexOf(".com") > -1);
}


推荐阅读