- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 05:27 AM
Hi All,
I Have a requirement to compare the two string fields data and the difference need to be populated in the 3rd field.
1st field name: user input
2nd field name: existing data
3rd field name: missing data:
1 st field data : 1,2,3,4,5,6
2nd field data : 2,5,6
i need to compare the data between 1st field and 2nd field and difference should be populate in 3rd field.
3rd field data: 1,3,4
Thanks in advance,
kumar
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 07:39 AM
I created an item in my dev instance and re-did the code. Try this you will just need to update the variable names as I created them as a, b, and c.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//Type appropriate comment here, and begin script below
var a = g_form.getValue('a').toString().split(',');
var b = g_form.getValue('b').toString();
getDifference(a, b);
}
function getDifference(a, b)
{
// var j = 0;
var result = [];
for (var i = 0; i < a.length; i++){
if (b.toString().indexOf(a[i]) < 0){
result.push(a[i]);
}
}
g_form.setValue('c', result);
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 06:39 AM
does these fields always contain comma separated values?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 06:40 AM
Yes Abhinay

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 06:49 AM
You might find the script include in this article helpful. It can cut down on the amount of code you need to write and centralizes that functionality for easier testing.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 06:56 AM
Here you go. Put this in the client script
var arr1=g_form.getValue("field name of 1st field").split(',');
var arr2=g_form.getValue("field name of 2nd field").split(',');
g_form.setValue("field name of 3rd field",arr_diff(arr1,arr2));
function arr_diff (a1, a2) {
var a = [], diff = [];
for (var i = 0; i < a1.length; i++) {
a[a1[i]] = true;
}
for (var i = 0; i < a2.length; i++) {
if (a[a2[i]]) {
delete a[a2[i]];
} else {
a[a2[i]] = true;
}
}
for (var k in a) {
diff.push(k);
}
return diff.join();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-23-2018 07:13 AM
Hi Abinay,
Thanks for your reply.
irrespective of the input it is giving the output. not related data also coming as output .can you please help on this.