1 | module.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 |