Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Convert Array of Arrays of Objects to Array of objects

aamir1
Mega Expert

Hi,

I need to convert Array of Arrays of Objects to Array of objects.

Here is the data-
var newresponse = [
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573046331,
"desktoptokens": [],
"email": "test1@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "Demo purpose user1",
"phones": [],
"realname": "Test User1",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUOXVNT4G6ZJ1XOFBDNF",
"username": "test1",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573653871,
"desktoptokens": [],
"email": "testuser2@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser2 user for duo",
"phones": [],
"realname": "test user2",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DU4J2I5LWV077WAYHC0D",
"username": "testuser2",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573653912,
"desktoptokens": [],
"email": "testuser3@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser3 for duo",
"phones": [],
"realname": "test user3",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUWEWBROV34OYTVJ4LVD",
"username": "testuser3",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573654492,
"desktoptokens": [],
"email": "testuser4@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser4 notes for duo",
"phones": [],
"realname": "test user4",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUBM14YD6MRE5033B2G7",
"username": "testuser4",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474789,
"desktoptokens": [],
"email": "testuser5@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user5",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUIS4KS98OS5MKCRDBI6",
"username": "testuser5",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474834,
"desktoptokens": [],
"email": "testuser6@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user6",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUOQB1869RKOFMOGX0TJ",
"username": "testuser6",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474871,
"desktoptokens": [],
"email": "testuser7@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user7",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUIFHX0LUAY4XGDIGOB4",
"username": "testuser7",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474905,
"desktoptokens": [],
"email": "testuser8@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user8",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUHWI7D2NOXUTU0VUKLA",
"username": "testuser8",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474942,
"desktoptokens": [],
"email": "testuser9@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user9",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DU1O3ECCG5XMJPWTB2JM",
"username": "testuser9",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474976,
"desktoptokens": [],
"email": "testuser10@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user10",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUDZCV2R7DJKJ1ZTZHQK",
"username": "testuser10",
"webauthncredentials": []
}
]
]

 

Below is my code, which is not working-

var result = [];
var key, value;
for (var i = 0; i<newresponse.length; i++) {
for (var j = 0; j<newresponse[i].length; j++) {
//key = newresponse[i][j][0];
//value = newresponse[i][j][1];
var actualData = {};
actualData.resp = newresponse[i][j];
//actualData[key] = value;
}
result.push(actualData);
}

Please suggest where is the issue.

1 ACCEPTED SOLUTION

ChrisBurks
Giga Sage

Or use reduce

var flattenedArr = newresponse.reduce(
    function(arr,curr){
      curr.forEach(function(currArr){
        arr.push(currArr);
    });
    return arr;
},[])

View solution in original post

4 REPLIES 4

Omkar Mone
Mega Sage

Hi 

I tried this in my personal instance in the background script. I see you haven't used JSON.stringify(actualData), Check my code, while pushing data in the result array, i have put  JSON.stringify(actualData).

var result = [];
var key, value;
for (var i = 0; i<newresponse.length; i++) {
for (var j = 0; j<newresponse[i].length; j++) {
//key = newresponse[i][j][0];
//value = newresponse[i][j][1];
var actualData = {};
actualData.resp = newresponse[i][j];
//actualData[key] = value;
}
result.push(JSON.stringify(actualData));


}
gs.print(result);

 

Hope this helps.

 

Regards

Omkar Mone

VigneshMC
Mega Sage

Try

var arrays = [
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573046331,
"desktoptokens": [],
"email": "test1@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "Demo purpose user1",
"phones": [],
"realname": "Test User1",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUOXVNT4G6ZJ1XOFBDNF",
"username": "test1",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573653871,
"desktoptokens": [],
"email": "testuser2@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser2 user for duo",
"phones": [],
"realname": "test user2",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DU4J2I5LWV077WAYHC0D",
"username": "testuser2",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573653912,
"desktoptokens": [],
"email": "testuser3@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser3 for duo",
"phones": [],
"realname": "test user3",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUWEWBROV34OYTVJ4LVD",
"username": "testuser3",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1573654492,
"desktoptokens": [],
"email": "testuser4@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "testuser4 notes for duo",
"phones": [],
"realname": "test user4",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUBM14YD6MRE5033B2G7",
"username": "testuser4",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474789,
"desktoptokens": [],
"email": "testuser5@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user5",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUIS4KS98OS5MKCRDBI6",
"username": "testuser5",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474834,
"desktoptokens": [],
"email": "testuser6@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user6",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUOQB1869RKOFMOGX0TJ",
"username": "testuser6",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474871,
"desktoptokens": [],
"email": "testuser7@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user7",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUIFHX0LUAY4XGDIGOB4",
"username": "testuser7",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474905,
"desktoptokens": [],
"email": "testuser8@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user8",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUHWI7D2NOXUTU0VUKLA",
"username": "testuser8",
"webauthncredentials": []
}
],
[
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474942,
"desktoptokens": [],
"email": "testuser9@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user9",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DU1O3ECCG5XMJPWTB2JM",
"username": "testuser9",
"webauthncredentials": []
},
{
"alias1": null,
"alias2": null,
"alias3": null,
"alias4": null,
"created": 1575474976,
"desktoptokens": [],
"email": "testuser10@ex.com",
"firstname": null,
"groups": [],
"is_enrolled": false,
"last_directory_sync": null,
"last_login": null,
"lastname": null,
"notes": "",
"phones": [],
"realname": "test user10",
"status": "active",
"tokens": [],
"u2ftokens": [],
"user_id": "DUDZCV2R7DJKJ1ZTZHQK",
"username": "testuser10",
"webauthncredentials": []
}
]
];
var flattened = [].concat.apply([],arrays);
gs.print(JSON.stringify(flattened));

ChrisBurks
Giga Sage

Or use reduce

var flattenedArr = newresponse.reduce(
    function(arr,curr){
      curr.forEach(function(currArr){
        arr.push(currArr);
    });
    return arr;
},[])

Thanks Chris, It worked.