Skip to content

Instantly share code, notes, and snippets.

@naranjja
Created November 23, 2016 20:50
Show Gist options
  • Save naranjja/395b25d2c1c9d7b7ad377bb45fbe4804 to your computer and use it in GitHub Desktop.
Save naranjja/395b25d2c1c9d7b7ad377bb45fbe4804 to your computer and use it in GitHub Desktop.
Function to unflatten JavaScript objects
JSON.unflatten = function(data) {
"use strict";
if (Object(data) !== data || Array.isArray(data))
return data;
var regex = /\.?([^.\[\]]+)|\[(\d+)\]/g,
resultholder = {};
for (var p in data) {
var cur = resultholder,
prop = "",
m;
while (m = regex.exec(p)) {
cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));
prop = m[2] || m[1];
}
cur[prop] = data[p];
}
return resultholder[""] || resultholder;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment