0

我正在使用 serviceNow 业务规则,并且想要比较两个字符串并捕获字符串中缺少的子字符串,例如......

var str1 = "subStr1,subStr2,subStr3,subStr4"
var str2 = "subStr1,subStr3"

魔法函数(str1,str2);

并且魔术函数将返回“subStr2,subStr4”

我可能会有更好的运气将字符串转换为数组并以这种方式比较它们,如果有一些推荐的方法我可以这样做,但我必须将一个分隔的字符串推回表单字段才能工作对,sys_id 的行为方式似乎需要它。

基本上我在一个包含 sys_ids 列表的表单上有一个字段,如果从列表中删除其中一个 sys_ids 我需要我可以捕获 sys_id 并对属于它的记录进行一些更改

4

3 回答 3

2

如果你不反对使用库,underscore有一个简单的方法来使用数组来做到这一点。见http://underscorejs.org/#difference

function magicFunction(str1, str2) {
   return  _.difference(str1.split(","),str2.split(",")).join(",");
}
于 2013-10-04T20:36:57.193 回答
2

ServiceNow 中包含的 ArrayUtil 脚本具有“差异”功能,一旦您在字符串上使用 split(",") 创建两个数组。

例如,

var myDiffArray = new ArrayUtil().diff(myArray1, myArray2);
于 2013-10-04T21:29:32.057 回答
1

假设您的列表有逗号分隔它们,您可以使用split(",")join(",")将它们转换为数组/返回以逗号分隔的列表,然后您可以使用它很容易地找到差异查找数组差异的方法

于 2013-10-04T20:36:26.723 回答