下記のコードで、fill
関数の外側だとdivided[1]
にアクセスできるのですが、fill
関数の内側だとCannot read property '1' of undefined
とエラーが出てしまいます。なぜでしょうか?
divided
自体は関数の内側でも[ 'maerd', 'remaerd', 'esare', 'resare' ]
と表示されます。
javascript
1const fill = (letters, divided) => { 2 const six = letters.slice(0, 6); 3 const five = letters.slice(0, 5); 4 5 console.log(divided); //[ 'maerd', 'remaerd', 'esare', 'resare' ] 6 7 if (six === divided[1] || six === divided[3]) { // Cannot read property '1' of undefined 8 letters = letters.slice(6); 9 if (letters === "") { 10 return true; 11 } 12 if (letters.length < 5) { 13 return false; 14 } 15 return fill(letters); 16 } else if (five === divided[0] || five === divided[2]) { 17 letters = letters.slice(5); 18 if (letters === "") { 19 return true; 20 } 21 if (letters.length < 5) { 22 return false; 23 } 24 return fill(letters); 25 } else { 26 return false; 27 } 28}; 29 30const divided = ["dream", "dreamer", "erase", "eraser"].map((v) => 31 [...v].reverse().join("") 32); 33 34console.log(divided[1]); // remaerd 35 36fill([..."dreameraser"].reverse().join(""), divided) 37
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/07 05:41