Javascript 尝试拆分文本节点时JS内存泄漏

Javascript 尝试拆分文本节点时JS内存泄漏,javascript,dom,Javascript,Dom,我有一个文本节点在一个p标签说“你好”。我编写了两个函数,用于搜索特定字符串,并将文本节点拆分为多个文本节点,每个节点仅包含特定字符串。我在chrome和firefox中都将函数的输出打印到控制台上,但在这之后,chrome中的ram使用率高达1.5GB,并且崩溃,在firefox中,它使用了100%的ram,迫使我重新启动。为什么会这样? 以下是我正在使用的两个函数: var splitIntoNodes = function(s,v){ var i=0,j=0,nodeTe

我有一个文本节点在一个p标签说“你好”。我编写了两个函数,用于搜索特定字符串,并将文本节点拆分为多个文本节点,每个节点仅包含特定字符串。我在chrome和firefox中都将函数的输出打印到控制台上,但在这之后,chrome中的ram使用率高达1.5GB,并且崩溃,在firefox中,它使用了100%的ram,迫使我重新启动。为什么会这样? 以下是我正在使用的两个函数:

   var splitIntoNodes = function(s,v){
      var i=0,j=0,nodeText,pos,t; var fNodes = [];
      for(i;i<s.length;i++){
         if(s[i].nodeName=="#text"){
            t = makeNodes(s[i],v);
            for(j=0;i<t.length;j++) fNodes.push(t[j]);
         } else {
            t = splitIntoNodes(s[i].childNodes,v);
            for(j=0;i<t.length;j++) fNodes.push(t[j]);
         }
      }
      return fNodes;
   }

   var makeNodes = function(s,v){
      var p = s.nodeValue.search(v),q,r,fNodes = [];
      while(p>=0){
         q = s.splitText(0,p);
         r = s.splitText(0,v.length);
         fNodes.push(r);
         p = r.nodeValue.search(v);
      }
      console.log(fNodes);
      return fNodes;
   }

// usage : splitIntoNodes(document.querySelector("id").childNodes),"a_string");
var splitintodes=函数(s,v){
var i=0,j=0,nodeText,pos,t;var fNodes=[];

对于(i;i
对于(j=0;我是的,事实上是的。我确实想用j代替i。我会调查并发布一个更新。这是一个愚蠢的错误。谢谢,伙计。它修复了它