当Javascript函数返回false时返回true

Jos*_*ins 2 javascript

我有一个函数,检查输入数组中是否存在param.它应该返回false但不返回false.

{
  ...
  validation: params => {
    const valid = ["valid", "inputs"];
    valid.forEach( v=> {
      if (!params.hasOwnProperty(v)) {
        return false;
      }
    });

    return true;
  }
Run Code Online (Sandbox Code Playgroud)

因此,即使if语句确实评估为true,它也永远不会返回false.无论如何,此函数始终返回true.

Ama*_*dan 7

作为替代方案,使用正确的工具来完成工作.如果要检查数组的每个成员是否具有某个属性,请使用every:

validation: params => {
  const valid = ["valid", "inputs"];
  return valid.every(v => params.hasOwnProperty(v));
}
Run Code Online (Sandbox Code Playgroud)