Join Objects | object.assign() does not work

Meloper
Kilo Sage
var a = {
    "a": "1",
    "b": "2"
};
var b = {
    "c": "1",
    "d": "2"
};

var c = Object.assign(a, b);
gs.log(c);

 

why ;)?

1 ACCEPTED SOLUTION

Upender Kumar
Mega Sage

Try below

 

var a = {
			"a": "1",
			"b": "2"
		};
		var b = {
			"c": "1",
			"d": "2"
		};

		
gs.print(JSON.stringify(merge(a,b)))
		function merge(from,to){
			for (var name in from){
				var mached=false;
				for(var dt in to){
					if(dt==name)
						mached=true;
				}
				if(!mached)
					to[name]=from[name];

			}
return to;
			
		}

View solution in original post

5 REPLIES 5

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

you can use this sample script to merge

var a = {
    "a": "1",
    "b": "2"
};
var b = {
    "c": "1",
    "d": "2"
};

var arr = [];
arr.push(a);
arr.push(b);

gs.info(JSON.stringify(arr));

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Meloper 

Do you require to merge those 2 objects?

then using array would be easier.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Upender Kumar
Mega Sage

Try below

 

var a = {
			"a": "1",
			"b": "2"
		};
		var b = {
			"c": "1",
			"d": "2"
		};

		
gs.print(JSON.stringify(merge(a,b)))
		function merge(from,to){
			for (var name in from){
				var mached=false;
				for(var dt in to){
					if(dt==name)
						mached=true;
				}
				if(!mached)
					to[name]=from[name];

			}
return to;
			
		}

reginaldocosta
Tera Contributor

I believe the answers are just trying to circumvent a BUG!

The point is Object.assign should work on ServiceNow since it is a standard javascript prototype function.