开发者问题收集

TypeError:无法调用 null 的方法“indexOf”

2019-04-22
1680

我试图从 CSV 文件中查找“RESUMEN”字段中包含“SO -”或“NS - SO”或“SO –”或“SWAT”的记录,以分配新类别(在这种情况下为“呼叫中心”)。因此,我使用了“indexOf”函数,效果非常好。

当我更改数据源(它也是 CSV)时,问题就出现了,这给了我该步骤的下一个错误:“由 org.mozilla.javascript.EcmaError 引起:TypeError:无法调用 null 的方法“indexOf”(脚本#2)”

目标是通过识别源文件上的单词来分配类别

我的代码

if (RESUMEN.indexOf("SO -")!=-1 || RESUMEN.indexOf("NS - SO")!=-1 || RESUMEN.indexOf("SO –" )!=-1 || RESUMEN.indexOf("SWAT")!=-1)
{
var RESULTADO = "Call Center"
}
else RESULTADO = ""

我希望像第一个文件一样分配呼叫中心类别(我没有做任何更改)

谢谢!

2个回答

您正在解决这个问题。

在答案之前,请记住一些步骤和步骤组合,实现了令人难以置信的转换以使可用的模式, 最后的手段是用户定义的Java表达式。

似乎您想实现的是值映射,您在情况下与直接值映射的差异是,您是您的行测试必须包含“ so - ”和其他情况。 > “在此处输入图像说明”

使用此简单的过滤器,您可以转换您的包含您想要的信息的数据以及在“错误”方面,将其视为错误。

这将稍微扩展您的转换,但是当您需要更改某些内容时,比使用更容易一个带有很多代码的步骤。

Cristian Curti
2019-04-23

正如另一个答案指出的那样,您可以通过不同的步骤实现相同的结果,而不需要 javascript 步骤。

但是,如果您想走这条路,您应该首先将空值转换为空字符串。

只需将其添加到您的 javascript 代码的开头:

if (!RESUMEN){ RESUMEN = ''>

这会将空值转换为空字符串,然后 indexOf 正确返回。

nsousa
2019-04-24