0

ifJavaScript にはいくつかの関数があり、その結果を別の関数のステートメントで使用したいと考えています。

私の問題は、最初にリストされた子関数のみが結果を返しているように見えることです。関数の順序を入れ替えても、最初にリストされた子関数からのみ結果が返されます。

私は初心者で、まだ機能にあまり慣れていません。以下の私の例を参照してください。具体的な回答をお願いします。

function main(a) {
  return functone(x);  // name of function is actually "functone" for this example
  return functtwo(y);  // name of function is actually "functtwo" for this example

  if(functone(x)!="true") {
    return false;
  } else {
    if(functtwo(y)!="true) {
      return false;
    } else {
      return true;
    }
  }
}
4

2 に答える 2

2

1 つの関数から 2 つの値を返すことはできません。だからあなたのコードは

function main(a){
if(functone(x)!="true")
  {return false;} else 
     {if(functtwo(y)!="true")
         {return false;} else {return true;}
     }
}
于 2013-05-04T07:28:48.150 に答える
0

呼び出された関数の両方が返す場合にのみ戻りたいようです。true

これの典型的なパターンは次のとおりです。

function main(a) {
    return functone(x) && functwo(y);
}

この場合、演算子は短絡演算子と呼ばれるものであるため、の結果が(より厳密には「偽」、つまりorも含む)場合functwoのみ呼び出されることに注意してください。演算の結果が左側のオペランドから直接判断できる場合、右側のオペランドは評価されません。funconefalsenull0&&

functwothenの結果に関係なく呼び出されるようにする場合は、演算子をビットごとfunconeの演算子に置き換えます。&&&

関数は (このfuncXXX関数のように) プロパティのブール値trueまたはを返す必要falseがあり、文字列ではありません"true"

于 2013-05-04T07:43:22.073 に答える