回答編集履歴
3
filterよりfindの方が一発で取得できることを追記
test
CHANGED
@@ -25,3 +25,15 @@
|
|
25
25
|
const result = test.filter( item => item.id == 1 )[0];
|
26
26
|
|
27
27
|
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
また、上記条件(対象オブジェクトが一個しかないとわかっている)ならば、`filter`よりも、
|
32
|
+
|
33
|
+
`find`メソッドの方が、一発で取得できるので、そちらの方がいいかと。
|
34
|
+
|
35
|
+
```javascript
|
36
|
+
|
37
|
+
const result = test.find( item => item.id == 1 );
|
38
|
+
|
39
|
+
```
|
2
{が余計に入っていたため、修正
test
CHANGED
@@ -22,6 +22,6 @@
|
|
22
22
|
|
23
23
|
```javascript
|
24
24
|
|
25
|
-
const result = test.filter( item =>
|
25
|
+
const result = test.filter( item => item.id == 1 )[0];
|
26
26
|
|
27
27
|
```
|
1
オブジェクト自体を取得する方法を追記。なぜ常に全要素の配列が返るか、少し詳しく追記
test
CHANGED
@@ -1,11 +1,27 @@
|
|
1
1
|
`=`が一個足りません。
|
2
2
|
|
3
|
+
代入では、`1`を`id`プロパティに代入してしまい、
|
4
|
+
|
3
|
-
|
5
|
+
論理値的には、**常に真**となるため、常に全要素の配列を返してしまいます。
|
4
6
|
|
5
7
|
|
8
|
+
|
9
|
+
なので、下記のように、比較演算を行ってください。
|
6
10
|
|
7
11
|
```javascript
|
8
12
|
|
9
13
|
const result = test.filter((item)=>{return item.id == 1});
|
10
14
|
|
11
15
|
```
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
また、配列ではなく、対象オブジェクト一個を取得するなら、下記です。
|
20
|
+
|
21
|
+
(対象オブジェクトが一個しかないことがわかっている限り有効)
|
22
|
+
|
23
|
+
```javascript
|
24
|
+
|
25
|
+
const result = test.filter( item => { item.id == 1 )[0];
|
26
|
+
|
27
|
+
```
|