Created
November 23, 2016 20:50
-
-
Save naranjja/395b25d2c1c9d7b7ad377bb45fbe4804 to your computer and use it in GitHub Desktop.
Function to unflatten JavaScript objects
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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