从回调中访问 forEach 的父作用域

问题描述

我正忙着为 Github 降价函数编写一个简单的 HTML。我的想法是有一个对象数组,这些对象定义了各种“映射”,从 HTML 标签到带有关联正则表达式的降价符号。

regExpReplace 用于解析一串 HTML,它将遍历 lessonToMDMap 中的每个项目,并在 {{1} 的帮助下通过相应的正则表达式替换每个 HTML 标签}.我想弄清楚如何从 .replace() 回调函数中更新 markdown 中定义的 regExpReplace 字符串。该代码当前不起作用,因为箭头函数回调可以访问父作用域(forEach 函数的词法作用域)。由于这个原因,该函数运行但不修改字符串。

我的问题是,是否有一些我可以从箭头函数回调中访问 forEach 之外的父作用域?有没有办法将作用域绑定到回调?

forEach

我尝试将回调定义为 //Define mapping in this array of objects const lessonToMDMap = [ { htmlTag: '<span class="ql-size-large">',mdTag: "##",regExp: RegExp(/\<(span)\s(class)\=("ql-size-large")\>/,'g'),},{ htmlTag: '<span class="ql-size-huge">',mdTag: "#",regExp: RegExp(/\<(span)\s(class)\=("ql-size-huge")\>/,'g') },] //Function for making replacements of html tags const regExpReplace = function (mapArray,stringToParse) { let markdown = '' + stringToParse; mapArray.forEach((mapItem)=>{ markdown = markdown.replace(mapItem.regExp,mapItem.mdTag); }) return markdown; }; 内的箭头函数,如下所示,但我仍然无法修改字符串。

regExpReplace

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)