【问题标题】:JavaScript How to run variables in if and for?JavaScript 如何在 if 和 for 中运行变量?
【发布时间】:2018-11-14 21:20:38
【问题描述】:

我想改用 FOR 循环。

let int1, int1, int3;//... (int4 to int999)
let op1, op;//... (op2 to op999)
if(int1 < 200) {
    op1 = int1;
}
else {
    op1 = '';
}
if(int2 < 200) {... (same IF statement for int2 to int999)

相反,我想要这个。

for(i = 1; i < 5; i++) {                
    let int = [int1, int2, int3, int4];
    let op = [op1, op2, op3, op4];
    if(int[i] < 200) {
        op[i] = int[i];
    }
    else {
        op[i] = '';
    }
}
alert(op1 + op2 + op3 + op4);

但这不起作用,有人帮忙。

【问题讨论】:

  • 设输入为数组let input = [input1, input2, ...];
  • 任何时候你发现自己使用具有类似顺序名称的变量,你几乎总是应该使用数组来代替。
  • 我更新了代码,但还是不行。

标签: javascript for-loop if-statement


【解决方案1】:

您的代码应如下所示:

let int = [1, 2, 3, 4];
let op = [999, 999, 999, 999];

for(i = 0; i < 4; i++) {                
    if(int[i] < 200) {
        op[i] = int[i];
    }
    else {
        op[i] = '';
    }
}
alert(op[0] + op[1] + op[2] + op[3]);

输出:

285

或者以你的“符号形式”:

let int = [int1, int2, int3, int4];
let op = [op1, op2, op3, op4];

for(i = 0; i < 4; i++) {                
    if(int[i] < 200) {
        op[i] = int[i];
    }
    else {
        op[i] = 0;
    }
}
alert(op[0] + op[1] + op[2] + op[3]);

【讨论】:

  • 关闭但 op1 没有被添加,因为它以某种方式未定义
  • @LiquidiceSlayer 要解开谜团,您必须向我提供 op1 到 op4 和 int1 到 int4 的实际值,我回答其余的问题。因为您可以通过真实的示例数据看到它有效。
  • op1-4 可以是任何你想要的(输入:3、4、2、5 但输出 425)
  • 如果 int1-5 为 12345,则代码输出 2345(由于某种原因 op5 在而 op1 被忽略)
  • 把int[i]换成int[i-1],问题就解决了。然而,这似乎并不优雅。
【解决方案2】:

您应该使用数组而不是一组变量。 然后,您的代码将如下所示:

let input = [input1, input2 ... input999];
let output = [];
for(let i = 0; i < input.length; i++){
    if(input[i]) {
        output[i] = input[i];
    } else {
        alert("error")
    }
})

【讨论】:

  • 我只有在 while 和 for 时才被允许。
  • Int 没有被转移到 op。
  • 你用实际数据填充输入数组了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 2021-04-18
相关资源
最近更新 更多