回答編集履歴

1

勘違いをしていたようなので追記

2021/02/13 04:09

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36946

test CHANGED
@@ -33,3 +33,45 @@
33
33
  }
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ # 勘違いをしていたようなので追記
40
+
41
+
42
+
43
+ 上記のコードは返すものを間違っていましたので訂正します。
44
+
45
+
46
+
47
+ jQueryが必須でないのであれば、flatMap()が便利です。
48
+
49
+ [Array.prototype.flatMap() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap)
50
+
51
+
52
+
53
+ ```js
54
+
55
+ function getSelectedFilter(obj, key=undefined){
56
+
57
+ return Object.entries(obj).flatMap( ([ k, v ]) => {
58
+
59
+ if( v === true ){
60
+
61
+ return {[key]: k};
62
+
63
+ }
64
+
65
+ if( v instanceof Object ){
66
+
67
+ return getSelectedFilter(v, k);
68
+
69
+ }
70
+
71
+ return [];
72
+
73
+ });
74
+
75
+ }
76
+
77
+ ```