配列の要素を一つずつ返したいのですが、
Uncaught RangeError: Maximum call stack size exceeded
というエラーが出てしまいます。調べた限りだと関数内で別の関数を再帰的に呼び出すようにしていることからスタックが溢れてしまい出ているエラーだということがわかりました。
JavaScript
1var getData = function(){ 2 var buff = ['aaaa', 'bbbbb', null]; 3 for (var i = 0; i < buff.length; i++){ 4 return buff[i]; 5 }; 6 buff.shift(); 7}; 8var setData = function(){ 9 var buff = getData(); 10 if (buff != null){ 11 console.log(buff); 12 setData(); 13 } else { 14 console.log(buff); 15}; 16setData();
array.shift()メソッドで先頭要素を削除すれば良いのかと思い、上記コードではそのようにしていますが、同じエラーが出てしまいました。
どのように修正すればうまく要素を一つずつ返すことができるのでしょうか?
ご教示いただけますと幸いです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー