JavaScript:仅当数组中的所有项都为true时才执行函数?

Joh*_*ens 0 javascript arrays jquery

我有这个代码:

// Required fields is an array of objects

required_fields.each(function() {

  // Check each field: If it has no value, do nothing.
  if( !$(this).val() ) {
    return false;
  }

  // If all the fields are there, do something.
  else {
    alert('Doing something.');
  }

});
Run Code Online (Sandbox Code Playgroud)

我相信你能看到问题所在.具有alert.each()功能,导致触发数组中的每一项警报.但我想要的是只有在所有数组项都有值的情况下触发事件 - 即如果没有则return false.

仅当所有数组项都通过时触发某事的正确方法是什么?

Sha*_*are 5

只需为每个值实现一个小计数器.

var valueCount = 0;

required_fields.each(function () {
  if (!$(this).val()) {
    return false;
  } else {
    valueCount++; // increment to say has value
  }

});

if (valueCount == required_feilds.length) {
  alert('Doing something.');
}
Run Code Online (Sandbox Code Playgroud)