我正在使用serviceNow业务规则,并希望比较两个字符串并捕获字符串中缺少的子字符串,例如......
var str1 = "subStr1,subStr2,subStr3,subStr4"
var str2 = "subStr1,subStr3"
magicFunction(STR1,STR2);
并且魔术函数将返回“subStr2,subStr4”
我可能有更好的运气将字符串转换为数组并将它们与那些方式进行比较,如果有一些方法建议我可以这样做,但我必须将一个分离的字符串推回到表单字段中它正常工作,与sys_id的行为似乎要求它。
基本上我在一个包含sys_ids列表的表单上有一个字段,我需要从列表中删除其中一个sys_id我可以捕获sys_id并对属于它的记录进行一些更改
答案 0 :(得分:2)
如果您不反对使用库,underscore可以通过数组轻松实现此目的。见http://underscorejs.org/#difference
function magicFunction(str1, str2) {
return _.difference(str1.split(","),str2.split(",")).join(",");
}
答案 1 :(得分:2)
ServiceNow中包含的ArrayUtil脚本有一个"差异"函数,一旦你在你的字符串上使用split(",")来创建两个数组。
如,
var myDiffArray = new ArrayUtil().diff(myArray1, myArray2);
答案 2 :(得分:1)
假设您的列表中有逗号分隔它们,您可以使用split(",")和join(",")将它们转换为数组/返回逗号分隔列表,然后您可以非常轻松地找到差异这method of finding array differences。