【问题标题】:Incrementing Values with If Statement使用 If 语句递增值
【发布时间】:2016-08-26 16:21:49
【问题描述】:

这是我想要做的:

我有数据。这些数据是非结构化的,我试图让它看起来整洁,以便我可以用它做一些事情。

有一个名为“地址”的列。如果地址列的值为“ADDRESS”,那么我想做一个值取 1 的计数。如果它不是“ADDRESS”,我希望计数增加。

目前的作用: 如果值“ADDRESS”出现,我的计数器的值为 1,如果值不是“ADDRESS”但值不会自行重置,它会增加。它一直在继续,好像什么都没发生过一样。

我的代码:

var count_y = -1;

for(a = 0; a<= New_Row_Num; a++){
    if(Address == 'ADDRESS'){
        count_y = 1;
        //count_y == 0;
    }else{
        count_y += 1;
    }
}

我尝试过的除了上面发布的代码之外没有用: 我尝试创建一个数组并将其赋值为 1。如果“地址”列的值为 'ADDRESS',则数组返回值为 1,否则数组将增加值。这与上面的效果相同,只是数字不同。

请帮助我理解我做错了什么,谢谢。

【问题讨论】:

  • 你不是在访问数组元素,你只是在访问全局变量Address
  • 您的循环遍历变量a,但从不使用这些值。所以在循环的每一次迭代中,Address 的值都不会改变,所以循环中的条件永远不会改变……总是执行count_y += 1 这一行。
  • 为什么不使用这些值?我最后有“a++”吗?我不明白我在哪里搞砸了。
  • 你没有做类似Address = addr_array[a];的事情。
  • 请同时添加数据数组。

标签: javascript if-statement pentaho pentaho-data-integration


【解决方案1】:

我知道我需要做什么。无论如何感谢您的帮助。

我的解决方案:

var x = getProcessCount('r');
var y; //I am not initializing the variable here.
var z; //I am not initializing the variable here.
trans_Status=CONTINUE_TRANSFORMATION;


if(x==1) y=1; //This is where it is initialized.
if(address=='ADDRESS'){

    y = 1;
    trans_Status=CONTINUE_TRANSFORMATION;

}else{

    y+=1;
    trans_Status=CONTINUE_TRANSFORMATION;
}

if(x==1) z=0; //This is where it is initialized.
if(address=='ADDRESS'){

    z+=1
    trans_Status=CONTINUE_TRANSFORMATION;
}

【讨论】:

    【解决方案2】:

    如果你有一个包含地址的地址数组,那么下面的代码应该可以工作,

    var count_y = -1;
    
    for(a = 0; a<= New_Row_Num; a++){
     if(Address[a] == 'ADDRESS'){
        count_y = 1;
        //count_y == 0;
     }else{
        count_y += 1;
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      相关资源
      最近更新 更多