回答編集履歴
1
おまけの追加
answer
CHANGED
@@ -27,4 +27,32 @@
|
|
27
27
|
|
28
28
|
return serializedModel;
|
29
29
|
};
|
30
|
+
```
|
31
|
+
|
32
|
+
おまけ(`reduce`を使う版)
|
33
|
+
```Javascript
|
34
|
+
$.fn.serializeModelHumanAddress = function () {
|
35
|
+
return model.reduce((cur, item) => {
|
36
|
+
|
37
|
+
var item_name = item.name; // HUMAN[0].NAME
|
38
|
+
var item_split1 = item_name.split('['); // ['HUMAN', '0].NAME']
|
39
|
+
var item_split2 = item_split1[1].split(']'); // ['0', '.NAME']
|
40
|
+
var item_split3 = item_split2[1].split('.'); // ['.', 'NAME']
|
41
|
+
|
42
|
+
model_name = item_split1[0]; // HUMAN
|
43
|
+
model_level = item_split2[0]; // 0
|
44
|
+
prop_name = item_split3[1]; // NAME
|
45
|
+
|
46
|
+
if (!cur[model_name][model_level]) {
|
47
|
+
cur[model_name][model_level] = {};
|
48
|
+
}
|
49
|
+
cur[model_name][model_level][prop_name] = item.value;
|
50
|
+
|
51
|
+
return cur;
|
52
|
+
},
|
53
|
+
{
|
54
|
+
HUMAN: [],
|
55
|
+
ADDRESS: []
|
56
|
+
});
|
57
|
+
};
|
30
58
|
```
|