程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有没有办法避免这段代码中的嵌套循环?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决有没有办法避免这段代码中的嵌套循环??

开发过程中遇到有没有办法避免这段代码中的嵌套循环?的问题如何解决?下面主要结合日常开发的经验,给出你关于有没有办法避免这段代码中的嵌套循环?的解决方法建议,希望对你解决有没有办法避免这段代码中的嵌套循环?有所启发或帮助;

我正在构建一个 Chrome 扩展,让用户可以用小图像替换文字。这是我的代码。

lookup=[['text','img.png']...];
var text = document.querySELEctorAll('h1,h2,h3,h4,h5,p,li,td,caption,span,a')

for (let i=0; i< text.length; i++) {
    var height = window.getComputedStyle(text[i]).FontSize
    for (let j=0;j<lookup.length;j++){
        text[i].INNERHTML = text[i].INNERHTMl.replace(new RegExp(lookup[j][0],"gi"),"<img src=\"img/"+lookup[j][1]+"\" wIDth=\""+height+"\" height=\""+height+"\">");
    }
}

由于每次页面中的任何文本更改时都必须运行此代码,因此我担心嵌套循环可能会导致严重的性能下降。 JavaScript 中有什么可以避免的吗?

解决方法

可以创建一个对象查找并创建一个带有交替 | 的正则表达式。在replace中使用一个函数作为第二个参数,并使用lookup对象根据匹配获取图像

const lookup= { 'text': 'img.png' },elements = document.querySELEctorAll('h1,h2,h3,h4,h5,p,li,td,caption,span,a'),regex = new RegExp(Object.keys(lookup).join("|"),'gi')

elements.forEach(e => {
  const height = window.getComputedStyle(E).fontSize;
  e.innerHTML = e.innerHTMl.replace(regex,m => `<img src="img/${lookup[m]}" width="${height}" />`)
})
@H_197_26@

大佬总结

以上是大佬教程为你收集整理的有没有办法避免这段代码中的嵌套循环?全部内容,希望文章能够帮你解决有没有办法避免这段代码中的嵌套循环?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。