質問編集履歴
4
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
jsで同じキーの異なる値を取り出したい
|
body
CHANGED
File without changes
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -106,4 +106,10 @@
|
|
106
106
|
```
|
107
107
|
など試しましたがエラーなどで何も表示されないか最初に来たキーの値の分しか取れませんでした
|
108
108
|
|
109
|
-
ご教示を宜しくお願いします。
|
109
|
+
ご教示を宜しくお願いします。
|
110
|
+
|
111
|
+
追記
|
112
|
+
underscore.jsを使用していますが、
|
113
|
+
使わないでこうした方が簡単だぞ。というものがあればご教示をお願いします。
|
114
|
+
js自体あまり使用したことがないため頼ろうとしたのが使用の理由です。(結局つまずいていますが…)
|
115
|
+
厚がましいですが回答依頼させていただきました。よろしくお願いします。
|
2
訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,34 +9,60 @@
|
|
9
9
|
"test":[
|
10
10
|
{
|
11
11
|
"id": 1,
|
12
|
-
"
|
12
|
+
"type":"aaa",
|
13
|
+
"color":"red"
|
13
14
|
},
|
14
15
|
{
|
15
16
|
"id": 2,
|
16
|
-
"
|
17
|
+
"type":"aaa",
|
18
|
+
"color":"red"
|
17
19
|
},
|
18
20
|
{
|
19
21
|
"id": 3,
|
20
|
-
"
|
22
|
+
"type":"bbb",
|
23
|
+
"color":"red"
|
21
24
|
},
|
22
25
|
{
|
23
26
|
"id": 4,
|
24
|
-
"
|
27
|
+
"type":"bbb",
|
28
|
+
"color":"blue"
|
25
29
|
},
|
26
30
|
{
|
27
31
|
"id": 5,
|
28
|
-
"
|
32
|
+
"type":"bbb",
|
33
|
+
"color":"blue"
|
29
34
|
}
|
30
35
|
]
|
31
36
|
}
|
32
37
|
```
|
33
|
-
下記の"query"の部分に
|
34
|
-
{name:"eee"}
|
35
|
-
など入れると正常に処理されるのですが、
|
36
|
-
|
38
|
+
下記コードの
|
37
|
-
"name":"eee"、"name":"aaa"など同じキーで異なる値が来た場合でも該当のデータを取り出したいです。
|
38
|
-
しかし、どうしても最初の一つしか取れず困っております。
|
39
39
|
|
40
|
+
var results = _.where(dataArray, query);
|
41
|
+
|
42
|
+
を通す際にqueryに
|
43
|
+
"type":"aaa" が来た場合は
|
44
|
+
|
45
|
+
{"id": 1,"type":"aaa","color":"red"},
|
46
|
+
{"id": 2,"type":"aaa","color":"red"},
|
47
|
+
|
48
|
+
が取れる。
|
49
|
+
|
50
|
+
"color":"red"と"color":"blue"が来た場合、
|
51
|
+
|
52
|
+
{"id": 1,"type":"aaa","color":"red"},
|
53
|
+
{"id": 2,"type":"aaa","color":"red"},
|
54
|
+
{"id": 3,"type":"bbb","color":"red"},
|
55
|
+
{"id": 4,"type":"bbb","color":"blue"},
|
56
|
+
{"id": 4,"type":"bbb","color":"blue"}
|
57
|
+
|
58
|
+
が取れる。
|
59
|
+
上記のような感じでどれか一つでも当てはまって入れば該当データの全要素を取得するようにしたいのですが、
|
60
|
+
|
61
|
+
"color":"red"と"color":"blue"のように同じキーで異なる値が来た場合だと
|
62
|
+
"color":"red"(idでいうと1,2,3)のデータしか取得できません。
|
63
|
+
|
64
|
+
どうしても最初の一つしか取れず困っております。
|
65
|
+
|
40
66
|
```js
|
41
67
|
// dataArrayにはjsonファイルの中身が入っています
|
42
68
|
var results = _.where(dataArray, query);
|
@@ -74,10 +100,10 @@
|
|
74
100
|
### 試したこと
|
75
101
|
|
76
102
|
```js
|
77
|
-
var results = _.where(dataArray, {
|
103
|
+
var results = _.where(dataArray, {type:"aaa,bbb"});
|
78
|
-
var results = _.where(dataArray, {
|
104
|
+
var results = _.where(dataArray, {type:"aaa","bbb"});
|
79
|
-
var results = _.where(dataArray, {
|
105
|
+
var results = _.where(dataArray, {type:"aaa"},{type:"bbb"});
|
80
106
|
```
|
81
|
-
など試しましたがエラーか最初の値しか取れませんでした
|
107
|
+
など試しましたがエラーなどで何も表示されないか最初に来たキーの値の分しか取れませんでした
|
82
108
|
|
83
109
|
ご教示を宜しくお願いします。
|
1
訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,8 +9,7 @@
|
|
9
9
|
"test":[
|
10
10
|
{
|
11
11
|
"id": 1,
|
12
|
-
"name":"UQ WiMAX",
|
13
|
-
"
|
12
|
+
"name":"aaa",
|
14
13
|
},
|
15
14
|
{
|
16
15
|
"id": 2,
|