回答編集履歴

3

テキスト追加

2020/04/30 11:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- 別案です。こちらはlodashの [_.pick](https://lodash.com/docs/#pick) を使います。
105
+ 別案です。lodashの [_.pick](https://lodash.com/docs/#pick) を使います。上記のコードよりも、こちらのほうが、何をやっているか分かりやすいかもしれません。
106
106
 
107
107
 
108
108
 

2

テキスト追加

2020/04/30 11:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -93,3 +93,31 @@
93
93
 
94
94
 
95
95
  - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/WNQELqm?editors=0012](https://codepen.io/jun68ykt/pen/WNQELqm?editors=0012)
96
+
97
+
98
+
99
+
100
+
101
+ ### 追記2
102
+
103
+
104
+
105
+ 別案です。こちらはlodashの [_.pick](https://lodash.com/docs/#pick) を使います。
106
+
107
+
108
+
109
+ ```javascript
110
+
111
+ var C = { ...A, ...B };
112
+
113
+
114
+
115
+ const len = Object.keys(A).length;
116
+
117
+
118
+
119
+ const result = [...Array(len)].map((x, i) => _.pick(C, [`a${i+1}`, `b${i+1}`]));
120
+
121
+ ```
122
+
123
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/LYpjqRz?editors=0012](https://codepen.io/jun68ykt/pen/LYpjqRz?editors=0012)

1

テキスト追加

2020/04/30 10:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -49,3 +49,47 @@
49
49
 
50
50
 
51
51
  以上参考になれば幸いです。
52
+
53
+
54
+
55
+ ### 追記
56
+
57
+
58
+
59
+ 上記のコードに少し追加します。上記のコードでは、
60
+
61
+ ```javascript
62
+
63
+ var A = { a1: 11, a2: 22, a3: 33 };
64
+
65
+ ```
66
+
67
+ に対して、`Object.entries(A)` とすると、 `a1`, `a2`, `a3` の順の
68
+
69
+
70
+
71
+ ```javascript
72
+
73
+ [ ["a1", 11], ["a2", 22], ["a3", 33] ]
74
+
75
+ ```
76
+
77
+ という配列が得られることを前提にしていますが、これは結果オーライな雑なコードだったので、ソートを加えます。
78
+
79
+ ```javascript
80
+
81
+ const result = _.zip(
82
+
83
+ ...[A, B].map(obj =>
84
+
85
+ Object.entries(obj).sort(([k1],[k2]) => k1.localeCompare(k2))
86
+
87
+ )
88
+
89
+ ).map(entries => Object.fromEntries(entries));
90
+
91
+ ```
92
+
93
+
94
+
95
+ - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/WNQELqm?editors=0012](https://codepen.io/jun68ykt/pen/WNQELqm?editors=0012)