0

私はserviceNowビジネスルールに取り組んでおり、2つの文字列を比較して、文字列から欠落している部分文字列をキャプチャしたい.

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

magicFunction(str1,str2);

マジック関数は「subStr2,subStr4」を返します

おそらく、文字列を配列に変換し、それらをそのように比較するほうが運がいいでしょう。推奨される方法があればそれを行うことができますが、それを機能させるには、分離された文字列をフォームフィールドにプッシュする必要がありますそうです、sys_id の振る舞いがそれを要求しているようです。

基本的に、フォームに sys_id のリストを保持するフィールドがあります。それらの sys_id の 1 つがリストから削除された場合、sys_id をキャプチャして、それに属するレコードに変更を加えることができます。

4

3 に答える 3

2

ServiceNow の ArrayUtil スクリプト インクルードには、文字列で split(",") を使用して 2 つの配列を作成すると、"diff" 関数があります。

例えば、

var myDiffArray = new ArrayUtil().diff(myArray1, myArray2);
于 2013-10-04T21:29:32.057 に答える
2

ライブラリの使用に反対しない場合は、アンダースコアを使用して配列でこれを行う簡単な方法があります。http://underscorejs.org/#differenceを参照してください

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

リストにカンマで区切られていると仮定すると、split(",")join(",")を使用してそれらを配列に変換したり、カンマ区切りのリストに戻したりできます。これを使用すると、違いを簡単に見つけることができます配列の違いを見つける方法

于 2013-10-04T20:36:26.723 に答える