在 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 表,所以无论你在脚本中做什么都必须对变量声明有一些限制.
我在输入中有一些值,我想将它们保存到一个数组中,但首先我想将数组的“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 表,所以无论你在脚本中做什么都必须对变量声明有一些限制.