Converting an Object Array into a flat Array

This code snippet helps you convert an array of objects into a flat array that you can use to import into a Google Sheet. This is pretty typical when you're importing data from an API response - see our Basic REST API GET Call Using JSON how-to guide for how to get data from an API using Google Apps Script.

Important Note: This snippet handles multiple objects that are structured into an Object Array. For a single object, please see our Converting JSON into a flat Array how-to guide.

To use this function, all you have to do is pass through the array of object into the function as a parameter. Like so:

convertObjectArrayToArray([{id:1,name:'test1'},{id:2,name:'test2'},{id:3,name:'test3'}])

Unlike converting a single object into a flat array, we'll make use of a loop to iterate through the object array. As we iterate through the object array, we'll push data into a separate array called finalArray which will act as a the top level of our nested array.

In the first iteration, we'll use Object.keys() to determine the column headers and push it into the first row of our nested array: finalArray.push().

For all other iterations in our loop, we'll first organize Object's values into its own array using array.push() before pushing that entire array into the finalArray.

const finalArray = [] for(let item in objectArray) { let object = objectArray[item] if (item == 0) { finalArray.push(Object.keys(object)) } let array = [] for(let key in object) { array.push(object[key]) } finalArray.push(array) }

Let's take this object array as an example,

[ {id:1,name:'test1'}, {id:2,name:'test2'}, {id:3,name:'test3'} ]

When we run it through the loop, we should expect to get an output with the column heads of id and name along with 3 rows of data:

[ [ 'id', 'name' ], [ 1, 'test1' ], [ 2, 'test2' ], [ 3, 'test3' ] ]

To go the other way around, where you convert a flat array into an object, check out our Converting an Array into an Object Array how-to guide.

NitroGAS Chrome Extension

Want this snippet handy inside the Apps Script editor? NitroGAS gives you free themes and snippets — plus optional Co-Pilot when you want a boost (1-week, 1-month, or yearly passes — no subscription). Happy Coding!

Get the Extension