javascript - Pentaho/Kettle JavaScript : Calling a field dynamically

标签 javascript pentaho kettle

我正在尝试检索字段的值,但我需要动态构建字段的名称。

想象一下,我将去年按天出生的人放在名为“天数”的列中。因此,您有 DAY_1、DAY_2、DAY_3 等列。值为 5、12、33... 我想对所有这些值进行循环,为此我构建了动态名称的字段名称:

var 列名 = "DAY_"+i

所以稍后我可以做我的循环,将 i 逐一增加。

问题是 javascript 无法将 DAY_i 识别为有效的输入字段,因此我无法检索该字段的值,Pentaho 将其作为字符串处理。

最佳答案

在 javascript 步骤中有一个数组变量 row。您可以使用 getInputRowMeta().indexOfValue("DAY_"+ i) 查找列的索引,然后使用该索引获取当前行中字段的值:

var column_name = "DAY_" + i;
var column_index = getInputRowMeta().indexOfValue(column_name);
var column_value = row[column_index];

请注意,column_value 将引用某种 Java 类型的对象(例如 java.lang.String),因此 javascript String 方法将无法处理该值。您需要将值转换为 javascript 类型或使用 java 方法。

关于javascript - Pentaho/Kettle JavaScript : Calling a field dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36453505/

相关文章:

javascript - 切换 :active class with ReactJS

javascript - 将外部 JS 文件链接到 Prestashop

jdbc - 在 Saiku 中编辑 JDBC 连接字符串

pentaho - 如何解决 Kettle 中的 in/out mysql 参数错误?

javascript - 跨平台文件 API - 打开和列出文件夹

mysql - Pentaho 报表设计器将年份显示为逗号分隔值

pentaho - pentaho 中 Step - 表输入的动态变量

java - 将 Pentaho Kettle 集成到 Java 应用程序中时,为什么 MongoDB 输出不起作用?

pentaho - 回滚后继续Pentaho变换

javascript - TailwindCSS 事件链接文本颜色未更改