質問するログイン新規登録

回答編集履歴

2

単なるオブジェクトなのを見落としてました

2018/11/27 06:29

投稿

maisumakun
maisumakun

スコア146775

answer CHANGED
@@ -1,10 +1,14 @@
1
1
  `forEach`の中身は**別な関数**ですので、`return`してもその関数を抜ける意味しかなくて、外側の関数は抜けられません。
2
2
 
3
- 対応した環境あれば、`Array.prototype.find`を使うが便利
3
+ …以前に、`arr`は単なるオブジェクトなので、`forEach`などメソッドは持ちません。`for`-`in`など回しましょう
4
4
 
5
5
  ```javascript
6
- const hoge = (val) => {
6
+ const hoge = val => {
7
- const obj = arr.find(elm => elm.num == val);
7
+ for(const key in arr) {
8
- if(obj) return obj.name;
8
+ const elm = arr[key];
9
+ if(elm['num'] == val) {
10
+ return (elm['name'])
11
+ }
12
+ }
9
13
  }
10
14
  ```

1

nameを返さないといけなかった

2018/11/27 06:29

投稿

maisumakun
maisumakun

スコア146775

answer CHANGED
@@ -3,5 +3,8 @@
3
3
  対応した環境であれば、`Array.prototype.find`を使うのが便利です。
4
4
 
5
5
  ```javascript
6
+ const hoge = (val) => {
6
- const hoge = (val) => arr.find(elm => elm.num == val);
7
+ const obj = arr.find(elm => elm.num == val);
8
+ if(obj) return obj.name;
9
+ }
7
10
  ```