在 pentaho javascript 步骤中将值设置为数组

Set value to an array in pentaho javascript step

我在输入中有一些值,我想将它们保存到一个数组中,但首先我想将数组的“0”索引设置为 0,然后在 1、2、3、4 索引中添加输入的值,但我可以做到

在设置输入值之前,我将 0 设置为数组的位置 0,但它不起作用

问题是我只想将 input_data 的前四个数字用于数组,但首先将 0 位置设置为 0,然后添加 5、10、15、20。 所以最后的数组将是 0,5,10,15,20

我将数组的索引“0”设置为 0,我将其他索引填充到传入数据中。

您可以试试下面的代码。

let array = [];

array.push(0);

let string = '1,2,3,4';
array = array.concat(string.split(','));
let result = array.map(function (x) { 
  return parseInt(x, 10); 
});

console.log(result);

这取决于数据到达 'Modified Java Script Value' 步骤的方式。 如果它是单行,字符串包含 "CSV",那么 Rohit.007 答案就足够了。

如果有多行到达该步骤,脚本将重复 N(行)次。如果您有 4 行被馈送到该步骤,则此脚本将 运行 4 次,因此您需要对变量进行某种限制,这样您就不会重复代码的某些部分。

就我个人而言,我会为 Pentaho 使用类似这样的东西:

我生成了 4 行,添加序列为 1 到 4。 脚本的第一个 运行 创建数组,压入 0 和第一行的值。脚本的其他迭代只是继续将在指定行上找到的任何值推送到此数组(没有 "Re-declaring")。

记住 "For Each" 命令在 pentaho 中有点模糊,因为你几乎总是在处理 multi-row 表,所以无论你在脚本中做什么都必须对变量声明有一些限制.