1
第六章有關於的forEach和地圖無限循環,當我學習eloquentjavascript
我的英語很差,所以我貼我的實踐代碼不能詳細描述了問題:HTTP://jsbin.com/exusox/ 3 /編輯
當你單擊butten時有無盡的循環。
我測試過我的代碼,我發現這個代碼的無限循環:
function extractFootnotes(paragraphs){
var footnotes=[],currentNum=0;
function dealWithFootnote(fragment){
if(fragment.type=="footnote"){
currentNum++;
fragment.number=currentNum;
footnotes.push(fragment);
return {type:"reference",number:currentNum};
}
else{
return fragment;
}
}
//run here ,endless loop happened.I've tested forEach,the i++ can't work.
forEach(paragraphs,function(paragraph){
paragraph.content=map(dealWithFootnote,paragraph.content);
});
return footnotes;
}
function forEach(array,action){
for(i=0;i<array.length;i++)
action(array[i]);
}
function map(func,array){
var result=[];
forEach(array,function(element){
result.push(func(element));
});
return result;
}
爲什麼出現這種情況,我怎樣才能減少我的代碼感謝?
謝謝!這可以解決所有問題。 – user1573365