回答編集履歴

4

訂正

2018/02/01 04:26

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -38,7 +38,9 @@
38
38
 
39
39
 
40
40
 
41
- `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`または`join()`としてください。
41
+ `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`~~または`join()`~~としてください。
42
+
43
+ (嘘つきました。引数無しの`join()`だとデフォルトで`,`が挟まります)
42
44
 
43
45
 
44
46
 

3

追記

2018/02/01 04:26

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -39,3 +39,31 @@
39
39
 
40
40
 
41
41
  `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`または`join()`としてください。
42
+
43
+
44
+
45
+ ### 追記
46
+
47
+ Cardにlistが渡されないパターンが存在する場合、Cardの中でlistを「存在する前提」で使ってはいけません。必ず`null`や`undefined`になっていないかチェックする必要があります。
48
+
49
+ ```JavaScript
50
+
51
+ function eachLi(props) {
52
+
53
+ console.log(props);
54
+
55
+ if(Array.isArray(props)) { // propsが配列である
56
+
57
+ return props.join(",");
58
+
59
+ }
60
+
61
+ else { // propsが配列ではない(nullやundefinedだった場合)
62
+
63
+ return "";
64
+
65
+ }
66
+
67
+ }
68
+
69
+ ```

2

修正

2018/02/01 04:21

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -38,4 +38,4 @@
38
38
 
39
39
 
40
40
 
41
- `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`としてください。
41
+ `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`または`join()`としてください。

1

修正

2018/02/01 04:03

投稿

masaya_ohashi
masaya_ohashi

スコア9206

test CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
 
36
36
 
37
- このコードで親からCardに渡す引数が`<Card list="a,b,c" />`であれば`join`は間違いです。渡されたlistは**文字列**であり、 joinメソッドを持ちません。
37
+ このコードで親からCardに渡す引数が`<Card list="a,b,c" />`であれば`join`は間違いです。渡されたlistは**文字列**であり、 `join`メソッドを持ちません。文字列を分解する`split`で配列に分解して返せば`{eachLi(props.list)}`部分は`abc`という文字列になります。
38
38
 
39
+
40
+
39
- `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。
41
+ `<Card list={[a,b,c]} />`であれば、渡されたlistは**配列**であり、`join`が正しいです。ただし、`join`で得られる結果の文字列は`a,b,c`であり、間に`join`に渡した引数の`,`が挟まれます。なにもはさみたくないなら`join("")`としてください。