for循环将许多值推送到数组中

时间:2014-10-09 20:56:27

标签: javascript jquery arrays for-loop

注意:Jquery或JS解析。我有一个名为“十进制”的数组,它接收11个十进制值,删除整数(例如:0.25)

如果我在我的十进制数组中运行这7个if语句,如下所示,我在“Fraction”数组中得到1个值,这就是我想要确认if()语句中的逻辑的情况是正确的。

        if (Decimal[1] <= 0.125) {Fraction.push('1/8');}
        if (Decimal[1] <= 0.25) {Fraction.push('1/4');}
        if (Decimal[1] <= 0.375) {Fraction.push('3/8');}
        if (Decimal[1] <= 0.50) {Fraction.push('1/2');}
        if (Decimal[1] <= 0.625) {Fraction.push('5/8');}
        if (Decimal[1] <= 0.75) {Fraction.push('3/4');}
        if (Decimal[1] <= 1) {Fraction.push('7/8');}

只要将7个if语句放入for循环中,我就会在Fraction Array中得到44个值(我期待11个)。请参阅下面的代码:

for (var t = 0; t < Decimal.length; t++) {
        if (Decimal[t] <= 0.125) {Fraction.push('1/8');}
        if (Decimal[t] <= 0.25) {Fraction.push('1/4');}
        if (Decimal[t] <= 0.375) {Fraction.push('3/8');}
        if (Decimal[t] <= 0.50) {Fraction.push('1/2');}
        if (Decimal[t] <= 0.625) {Fraction.push('5/8');}
        if (Decimal[t] <= 0.75) {Fraction.push('3/4');}
        if (Decimal[t] <= 1) {Fraction.push('7/8');}
    }

2 个答案:

答案 0 :(得分:1)

除了第一个条件之外,你还需要if语句,否则一个值可以匹配多个语句:

for (var t = 0; t < Decimal.length; t++) {
  if (Decimal[t] <= 0.125) {Fraction.push('1/8');}
  else if (Decimal[t] <= 0.25) {Fraction.push('1/4');}
  else if (Decimal[t] <= 0.375) {Fraction.push('3/8');}
  else if (Decimal[t] <= 0.50) {Fraction.push('1/2');}
  else if (Decimal[t] <= 0.625) {Fraction.push('5/8');
  else if (Decimal[t] <= 0.75) {Fraction.push('3/4');}
  else if (Decimal[t] <= 1) {Fraction.push('7/8');}
}

答案 1 :(得分:0)

不确定你做了什么测试,但这是你需要的逻辑:

for (var t = 0; t < Decimal.length; t++) {
    if (Decimal[t] <= 0.125) {Fraction.push('1/8');}
    else
    if (Decimal[t] <= 0.25) {Fraction.push('1/4');}
    else
    if (Decimal[t] <= 0.375) {Fraction.push('3/8');}
    else
    if (Decimal[t] <= 0.50) {Fraction.push('1/2');}
    else
    if (Decimal[t] <= 0.625) {Fraction.push('5/8');}
    else
    if (Decimal[t] <= 0.75) {Fraction.push('3/4');}
    else
    if (Decimal[t] <= 1) {Fraction.push('7/8');}
}

注意:最好在else区域使用{},但我懒得输入所有这些。