Suitescript 将 .0 添加到数组中的数字

Suitescript adds .0 to numbers in array

在 Suitescript 2.0 中,我想检查一个 ID 是否与下面数组中的一个 ID 不匹配:

var interfaceStatusArray1 = [14, 15, 17, 20, 25, 26];

在调试器中,我看到数组中的每个值都添加了 .0 :

现在,如果我的 ID 是 1,我将执行以下检查:

 interfaceStatusArray1.indexOf(lineItemFieldValues.interfaceStatusID) == -1

那么这将永远是正确的,因为数字已经添加了 .0。

有没有办法删除 .0?我已经尝试过 Math.trunc,但 Netsuite 给我这个错误:

TypeError: Cannot find function trunc in object [object Math].

我还在 jsfiddle 中复制了代码,但是在 jsfiddle 中它有效,因为它变成了 false: https://jsfiddle.net/7fnxoz1r/1/

我对 Suitescript 2.0 很陌生,但 suitescript 2.0 似乎也不允许 array.includes。

为什么不将 interfaceStatusArray1 设置为字符串数组?如果需要,您可以使用原语 类 String(val)/Number(val)

将它们转换为数字 back/forward

这不是NetSuite独有的,而是JavaScript处理数字的方式:只有数字,没有整数和浮点数,所以JS中的数字基本上都是浮点数。如果您需要将这些作为数字使用,则显示“.0”这一事实无关紧要。实际上,如果您对它们执行 ToString() 操作,则“.0”将不会出现在字符串中。

要使用您的示例:

interfaceStatusArray1.indexOf(lineItemFieldValues.interfaceStatusID) == -1

如果 lineItemFieldValues.interfaceStatusID 是 1.0,JavaScript 会说条件为假 (1.0 !== -1.0)。如果您想确定,请使用“===”而不是“==”,并在您的条件中添加“.0”。