-3

おそらくばかげた質問ですが、どのように表現すればよいかわかりません。

関数に配列があり、それをループに入れて、変数ではなくテキストを出力したいと思います。私はこれに頭を悩ませ始めたばかりですが、本当に私を惹きつけているのは、値が空でない場合に「カテゴリ」と値を言うことができるように印刷する方法だけです。これが例です。私が探している結果は「u=1およびx=1 AND z=3」です。誰かが私を書き込み方向に向けることができれば、それは最も役に立ちます。

(categories called from multiple selection menus in text)
s=
t=
u=1
v=
w=
x=1
y=
z=3
function example(s,t,u,v,w,x,y,z) {

    selection=[s,t,u,v,w,x,y,z];
    for (var i=0;;i++)
    {
        if (!selection[i]) {
            selection="";
        }
        else
        {
            selection= selection + 
        };
    }
}

私が探している結果は「u=1およびx=1 AND z=3」です。

4

3 に答える 3

2

すべてのフィールドを手動で列挙する場合は、フィールドを使用してオブジェクトを作成し、そのキーを反復処理できます。

function example(s,t,u,v,w,x,y,z){
    var selection = {
        s: s,
        t: t,
        u: u,
        v: v,
        w: w,
        x: x,
        y: y,
        z: z
    };
    var out = "";
    for(var i in selection){
        if(selection[i]){
        if(!out){
            out += " "; // insert space between values
        }
        out += i + '=' + selection[i];
        }
    }
    return out;
}
于 2012-12-05T18:26:07.653 に答える
1

私はワークデスクにいないので、半機能コードを提供します。変数がパラメータとして、またはどこかでプレーン変数として宣言されていると仮定します。変数の名前を配列として宣言し、配列をループして、eval関数を使用してそれらの値を評価できます。

selection=["s","t","u","v","w","x","y","z"];
output = "";
    for (var i=0; i < selection.length; i++)
    {
        value = eval(selection[i]);
        if (value==""){
           //nothing to do
         }
        else
        {
          output += selection[i] + "=" + value; 
        };
     }
于 2012-12-05T18:25:33.550 に答える
0

値をその名前で出力するには、インデックス付き配列(別名オブジェクト)が必要です。

var selection = {"s": s, "t": t, "u": u, "v": v, "w": w, "x": x, "y": y, "z": z};
for (var i in selection)
    document.write(i + " = " + selection[i]);
于 2012-12-05T18:26:01.537 に答える