JavaScript极速狂飙:大容量字符型数组的快速检索


JavaScript 在大容量数组的循环方面效率不尽人意,我曾经做过一个比对,与VBS的数组相比较,VBS的数组循环速度大致比JS要快一个数量级(http://community.csdn.net/Expert/TopicView.asp?id=4313487)。JS数组在一般的编程当中我们也不会太去注意它的效率问题:才几十个元素的数组效率即使差点你也看不出来,但节点量一大,比如几千、比如上万个节点量的数组循环,那效率问题就成了首要考虑解决的问题了。大容量数组的检索大致有以下几个应用:select做combo box时的快速匹配、树的查询、表格table排序或者检索等。

  下面我来做一个测试,首先我先创建一个大容量的数组:

  <SCRIPT LANGUAGE="JavaScript">
  var n = 100000; //数组的最大容量
  var a = new Array();
  for(var i=0; i<n; i++)
  {
  a[i] = Math.random() +"";
  }
  </SCRIPT>

  这样我就创建了一个长度为 100000 的字符型数组,然后我再检索字符串以 0.9999 开始的字符串,并存入另一个数组中。

 <SCRIPT LANGUAGE="JavaScript">
  var n = 100000; //数组的最大容量
  var a = new Array();
  for(var i=0; i<n; i++)
  {
  a[i] = Math.random() +"";
  }
  var begin = new Date().getTime();
  var b = new Array();
  for(var i=0; i<n; i++)
  {
  if(a[i].indexOf("0.9999")==0)
  {
  b[b.length] = a[i];
  }
  }
  document.write("数组长度:"+ n);
  document.write("<br>传统循环法耗时 "+ (new Date().getTime() - begin)
  +" 毫秒!检索的结果:<strong title='"+ b.join("&#13;")
  +"'>检索到 "+ b.length +" 个记录!</strong>");
  </SCRIPT>

JavaScript 在大容量数组的循环方面效率不尽人意,我曾经做过一个比对,与VBS的数组相比较,VBS的数组循环速度大致比JS要快一个数量级(http://community.csdn.net/Expert/TopicView.asp?id=4313487)。JS数组在一般的编程当中我们也不会太去注意它的效率问题:才几十个元素的数组效率即使差点你也看不出来,但节点量一大,比如几千、比如上万个节点量的数组循环,那效率问题就成了首要考虑解决的问题了。大容量数组的检索大致有以下几个应用:select做combo box时的快速匹配、树的查询、表格table排序或者检索等。

  下面我来做一个测试,首先我先创建一个大容量的数组:

  <SCRIPT LANGUAGE="JavaScript">
  var n = 100000; //数组的最大容量
  var a = new Array();
  for(var i=0; i<n; i++)
  {
  a[i] = Math.random() +"";
  }
  </SCRIPT>

  这样我就创建了一个长度为 100000 的字符型数组,然后我再检索字符串以 0.9999 开始的字符串,并存入另一个数组中。

 <SCRIPT LANGUAGE="JavaScript">
  var n = 100000; //数组的最大容量
  var a = new Array();
  for(var i=0; i<n; i++)
  {
  a[i] = Math.random() +"";
  }
  var begin = new Date().getTime();
  var b = new Array();
  for(var i=0; i<n; i++)
  {
  if(a[i].indexOf("0.9999")==0)
  {
  b[b.length] = a[i];
  }
  }
  document.write("数组长度:"+ n);
  document.write("<br>传统循环法耗时 "+ (new Date().getTime() - begin)
  +" 毫秒!检索的结果:<strong title='"+ b.join("&#13;")
  +"'>检索到 "+ b.length +" 个记录!</strong>");
  </SCRIPT>

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3