0

さまざまな車両のメンテナンス イベントを保存する Web サイトに取り組んでいます。パーツごとに分類したいのですが、ページの作り方が分からなくて困っています。部品を選択し、次に場所を選択する必要があり、場合によってはさらに先に進みます。追加のドロップダウン ボックスを生成するために Javascript を使用することを考えましたが、多数の if,then ステートメントを作成する必要があるのは非常に非効率的です。これを行うより効率的な方法はありますか?

編集:私の擬似コードは次のようなものです

onChange=>changeFunction()


changeFunction{
if(ddlLocation=brakes){
add select boxes, populate with the individual parts
}else if (...){
}
}
4

2 に答える 2

0

私はより良い手助けをするために特定のアプリケーションについてもっと知る必要があるでしょう、しかしここにもっと良い方法があります。

動的に考えてください。一意の名前で入力された100個の入力があり、パターンにメソッド名を持つメソッドを使用してクラスを作成します。これにより、入力名をループし、メソッドの命名規則に基づいて使用可能なメソッドを確認し、それを呼び出すことができます。そのタイプの入力を具体的に処理します。

その場合、正しく設定すると、ランダム入力を処理するループに一度に入力を渡します。if、elseを使用しない場合も同様です。

例えば:

$carparts = new CarParts();
foreach ($_POST as $name=>$value) {
    $method = strtolower($name) . 'Action';
    if (method_exists($carparts,$method)) {
        $carparts->$method($value);
    }
}
于 2013-02-06T05:22:06.853 に答える
0

ほとんどの状況では (アプリケーションによって異なりますが)、チェーンされた if ステートメントではなく、switch ステートメントを使用することをお勧めします。通常、switch ステートメントは、複数の if 条件よりも高速です。

JavaScript では、評価する条件が 1 つまたは 2 つしかない場合、if ステートメントは通常、switch ステートメントよりも高速です。2 つ以上の条件があり、条件が単純な (範囲ではない) 場合は、switch ステートメントの方が高速になる傾向があります。これは、多くの場合、switch ステートメントで 1 つの条件を実行するのにかかる時間は、if ステートメントで 1 つの条件を実行するよりも短いため、条件の数が多い場合にのみ switch ステートメントが最適になるためです。

if else と switch に関する詳細情報

Javascript の case ステートメントの例:

switch(n)
{
 case 1:
   execute code block 1
   break;
 case 2:
   execute code block 2
   break;
 default:
   code to be executed if n is different from case 1 and 2
 }
于 2013-02-06T05:46:48.167 に答える