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