使用`array.some()`而不是boolean返回一个元素

use*_*133 3 javascript arrays map-function

我正在尝试使用一个array.some函数来迭代一些数据并返回我field的if语句成功.

相反,我发现的是,我得到一个布尔返回,true而不是实际变量(包含元素的详细信息).

for (var index in allFields) {
      const invalidField = allFields[index].some(function (field){
        if (!validation.getIn([index,field.dataset.fieldKey,'isValid'])) {
          return field;
        }
      });
      if (invalidField) {
        return invalidField;
      }
    }
Run Code Online (Sandbox Code Playgroud)

我的代码循环allFields,其中包含索引下的字段列表.然后它将每个fieldKey数据与另一组数据进行比较validation.

field包含一个元素.我希望返回,field但是当我检查时,invalidField我得到的true不是元素

Bar*_*icz 7

Array.prototype.some()仅检查数组中的某个元素是否通过了回调函数中定义的测试.你应该使用find返回第一个元素passig测试的array 方法