制作Javascript变量......不是变量

时间:2012-12-05 18:18:32

标签: javascript

可能是一个愚蠢的问题,我不知道该怎么说。

我在函数中有一个数组,我想通过循环打印文本,而不是变量。我刚刚开始讨论这个问题,但是我真正得到的是如何打印,如果值不为空,则可以说“类别”和值。这里和示例显示,我正在寻找的结果是“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”

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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; 
        };
     }

答案 2 :(得分: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]);