teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

おまけの追加

2019/09/13 03:01

投稿

BluOxy
BluOxy

スコア2663

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
  ```