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