質問編集履歴

4

タイトル変更

2018/07/13 00:18

投稿

MeB
MeB

スコア104

test CHANGED
@@ -1 +1 @@
1
- underscore.jsの_.where()で同じキーの異なる値を取り出したい
1
+ jsで同じキーの異なる値を取り出したい
test CHANGED
File without changes

3

追記

2018/07/13 00:18

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -215,3 +215,15 @@
215
215
 
216
216
 
217
217
  ご教示を宜しくお願いします。
218
+
219
+
220
+
221
+ 追記
222
+
223
+ underscore.jsを使用していますが、
224
+
225
+ 使わないでこうした方が簡単だぞ。というものがあればご教示をお願いします。
226
+
227
+ js自体あまり使用したことがないため頼ろうとしたのが使用の理由です。(結局つまずいていますが…)
228
+
229
+ 厚がましいですが回答依頼させていただきました。よろしくお願いします。

2

訂正

2018/07/13 00:09

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,9 @@
20
20
 
21
21
  "id": 1,
22
22
 
23
- "name":"aaa",
23
+ "type":"aaa",
24
+
25
+ "color":"red"
24
26
 
25
27
  },
26
28
 
@@ -28,7 +30,9 @@
28
30
 
29
31
  "id": 2,
30
32
 
31
- "name":"bbb"
33
+ "type":"aaa",
34
+
35
+ "color":"red"
32
36
 
33
37
  },
34
38
 
@@ -36,7 +40,9 @@
36
40
 
37
41
  "id": 3,
38
42
 
39
- "name":"ccc"
43
+ "type":"bbb",
44
+
45
+ "color":"red"
40
46
 
41
47
  },
42
48
 
@@ -44,7 +50,9 @@
44
50
 
45
51
  "id": 4,
46
52
 
47
- "name":"ddd",
53
+ "type":"bbb",
54
+
55
+ "color":"blue"
48
56
 
49
57
  },
50
58
 
@@ -52,7 +60,9 @@
52
60
 
53
61
  "id": 5,
54
62
 
55
- "name":"eee"
63
+ "type":"bbb",
64
+
65
+ "color":"blue"
56
66
 
57
67
  }
58
68
 
@@ -62,17 +72,59 @@
62
72
 
63
73
  ```
64
74
 
75
+ 下記コードの
76
+
77
+
78
+
79
+ var results = _.where(dataArray, query);
80
+
81
+
82
+
83
+ を通す際にqueryに
84
+
65
- 下記の"query"の部分に
85
+ "type":"aaa" が来た場合は
86
+
87
+
88
+
66
-
89
+ {"id": 1,"type":"aaa","color":"red"},
90
+
91
+ {"id": 2,"type":"aaa","color":"red"},
92
+
93
+
94
+
95
+ が取れる。
96
+
97
+
98
+
67
- {name:"eee"}
99
+ "color":"red"と"color":"blue"が来た場合、
100
+
101
+
102
+
68
-
103
+ {"id": 1,"type":"aaa","color":"red"},
104
+
105
+ {"id": 2,"type":"aaa","color":"red"},
106
+
107
+ {"id": 3,"type":"bbb","color":"red"},
108
+
109
+ {"id": 4,"type":"bbb","color":"blue"},
110
+
111
+ {"id": 4,"type":"bbb","color":"blue"}
112
+
113
+
114
+
115
+ が取れる。
116
+
69
- など入れると正常処理されるのですが、
117
+ 上記のよう感じでれか一つでも当てはまって入れば該当データの全要素を取得すようしたいのですが、
70
-
71
- やりたいことは
118
+
72
-
119
+
120
+
73
- "name":"eee""name":"aaa"など同じキーで異なる値が来た場合でも該当のデータを取り出したいです。
121
+ "color":"red""color":"blue"のように同じキーで異なる値が来た場合だと
122
+
74
-
123
+ "color":"red"(idでいうと1,2,3)のデータしか取得できません。
124
+
125
+
126
+
75
- しかし、どうしても最初の一つしか取れず困っております。
127
+ どうしても最初の一つしか取れず困っております。
76
128
 
77
129
 
78
130
 
@@ -150,15 +202,15 @@
150
202
 
151
203
  ```js
152
204
 
153
- var results = _.where(dataArray, {name:"aaa,eee"});
205
+ var results = _.where(dataArray, {type:"aaa,bbb"});
154
-
206
+
155
- var results = _.where(dataArray, {name:"aaa","eee"});
207
+ var results = _.where(dataArray, {type:"aaa","bbb"});
156
-
208
+
157
- var results = _.where(dataArray, {name:"eee"},{name:"eee"});
209
+ var results = _.where(dataArray, {type:"aaa"},{type:"bbb"});
158
-
210
+
159
- ```
211
+ ```
160
-
212
+
161
- など試しましたがエラーか最初の値しか取れませんでした
213
+ など試しましたがエラーなどで何も表示されないか最初に来たキーの値の分しか取れませんでした
162
214
 
163
215
 
164
216
 

1

訂正

2018/07/12 13:16

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -20,9 +20,7 @@
20
20
 
21
21
  "id": 1,
22
22
 
23
- "name":"UQ WiMAX",
24
-
25
- "period":"aaa"
23
+ "name":"aaa",
26
24
 
27
25
  },
28
26