UNPKG

675 BJavaScriptView Raw
1module.exports = function(data){
2 if (!data || data.length < 1) return {};
3
4 let d = {},
5 keys = Object.keys(data);
6
7 for (let i = 0; i < keys.length; i++) {
8 let key = keys[i],
9 value = data[key],
10 current = d,
11 keyParts = key
12 .replace(new RegExp(/\[/g), '.')
13 .replace(new RegExp(/\]/g), '')
14 .split('.');
15
16 for (let index = 0; index < keyParts.length; index++){
17 let k = keyParts[index];
18 if (index >= keyParts.length - 1){
19 current[k] = value;
20 } else {
21 if (!current[k]) current[k] = !isNaN(keyParts[index + 1]) ? [] : {};
22 current = current[k];
23 }
24 }
25 }
26
27 return d;
28};
\No newline at end of file