回答編集履歴

2

文章を若干修正

2020/11/03 02:59

投稿

Automatic9045
Automatic9045

スコア313

test CHANGED
@@ -22,9 +22,9 @@
22
22
 
23
23
 
24
24
 
25
- 初学者のうちはforは非常に身近なためよく使いがちですが、forループで実装しようとするとどうしても解読性の低いコードになってしまいます。
25
+ 初学者のうちはforは非常に身近なためよく使いがちですが、forループで実装しようとするとどうしても直感的に理しづらいコードになってしまいます。書いているご自身でも、自分が何を書いているのかよく分からなくなってしまっているのではないでしょうか。
26
26
 
27
- 今回提案したevery関数の他にも、find関数など、配列操作するコード直感的に理解しやすく書けるモダンな関数が沢山用意されているので、是非ご自分で調べてみて下さい。
27
+ 今回提案したevery関数の他にも、find関数など、配列操作を可読性高く書くためのモダンな関数が沢山用意されているので、是非ご自分で調べてみて下さい。
28
28
 
29
29
 
30
30
 

1

解決策のヒントとネタバレを追記

2020/11/03 02:59

投稿

Automatic9045
Automatic9045

スコア313

test CHANGED
@@ -9,3 +9,37 @@
9
9
  「arr2の各要素について、arr1に含まれているか調べる」
10
10
 
11
11
  という方法をとると思います。
12
+
13
+
14
+
15
+ - 配列の各要素について試行を実施し、全ての試行がtrueとなるか試す`Array.prototype.every()`関数
16
+
17
+ - 配列内に特定の要素が存在するか調べる`Array.prototype.indexOf()`関数
18
+
19
+
20
+
21
+ この2つを組み合わせれば綺麗に書けます。
22
+
23
+
24
+
25
+ 初学者のうちはforは非常に身近なためよく使いがちですが、forループで実装しようとすると、どうしても解読性の低いコードになってしまいます。
26
+
27
+ 今回提案したevery関数の他にも、find関数など、配列を操作するコードを直感的に理解しやすく書けるモダンな関数が沢山用意されているので、是非ご自分で調べてみて下さい。
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ ##≪以下ネタバレ、出来る限りご自分で頑張ってみて下さい≫
36
+
37
+ ``` JavaScript
38
+
39
+ if (arr2.every(element => arr1.indexOf(element) != -1)) {
40
+
41
+ console.log("全部ありました");
42
+
43
+ }
44
+
45
+ ```