前几天在QQ群里有人提出了一个关于动态插入DOM元素的问题,并由此引出了如何删除数组中重复项的讨论,为此我写了一个小函数来实现这个需求: [javascript] var pureMultil=function(arr){ var obj={}; var a = []; for(var i=0,l=arr.length;i < l;i++){ if(!(arr[i] in obj)){ a.push(arr[i]); } obj[arr[i]]=""; … 了解更多
下面根据我平时编写代码和浏览其他库的源文件的时候发现的几种对循环操作的优化方法。循环操作可以说在我们平时的编程中是经常会遇到和使用的步骤,大家可能会习以为常的使用一种方式,比如: [javascript] //假设arr为一个现成的数组 for(var i=0;i<arr.length;i++){ //…… } [/javascript] 这种方式是我们最初接触到的原始的方式,这种方式的缺点就是每次循环的时候都需要计算数组的length属性,要知道这个操作在IE的低版本中是很低效率的。 下面我们来看一下另外几种循环方式对循环操作的优化。首先定义一个大数组,方便测试效果明显: [javascript] var arr=[]; for(var i=0;i<100000;i++) arr[i]=i; [/javascript] 第一种方式:先使用变量储存数组的length属性,这就解决了每次循环需要计算数组的length属性所使用的额外的操作。但是这种优化还不够明显。 [javascript] for … 了解更多
大家曾否想过这样的问题:当你要对一个数组,或者对象进行复制的时候,怎么进行复制? 我们都知道,除了三种基本的数据类型外(Number,Boolean,String)的数据赋给另外一个变量的时候,这样该变量得到的不是这些数据的副本,而是一个指向该数据的引用,它的变化,会影响原来的数据对象。这可怎么得到这种数据对象的引用呢? 看下面的代码: [javascript] var arr1 = [ [1,2,3] , [1,2,3] , [1,2,3] ]; var arr2 = arr1; //arr2的改变会使arr1也同时改变 arr2[0] … 了解更多