js清空數組的方法


方式1:splice函數

arrayObject.splice(index,howmany,element1,.....,elementX)

index:必選,規定從何處添加/刪除元素。

howmany:必選,規定應該刪除多少元素。未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。

element1:可選,規定要添加到數組的新元素。

<script type ="text/javascript">  
  var arr = [1,2,3,4];    arr.splice(0,arr.length); 
</script>

方式2:給數組的length賦值為0

<script type ="text/javascript">  
  var arr = [1,2,3,4]; arr.length = 0; </script> 

賦予數組的長度小於本身的長度,數組中后面的元素將被截斷。

賦予數組的長度大於本身的長度,將擴展數組長度,多的元素為undefined。

方式3:直接賦予新數組 []

<script type ="text/javascript">  
  var arr = [1,2,3,4]; arr = []; </script> 

這種方式為將arr重新復制為空數組,之前的數組如果沒有被引用,將等待垃圾回收。

效率比較:

效率測試代碼如下:

<script>
    var a = []; var b = []; var c = []; for(var i =0 ; i < 100000000;i++){ a.push(i); } console.time('splice'); a.splice(0,a.length); console.timeEnd('splice'); for(var i =0 ; i < 100000000;i++){ b.push(i); } console.time('length'); b.length = 0; console.timeEnd('length'); for(var i =0 ; i < 100000000;i++){ c.push(i); } console.time('賦值[]'); c = []; console.timeEnd('賦值[]'); </script>

測試結果:

splice: 0.010986328125ms
length: 0.009033203125ms
賦值[]: 0.024169921875ms

多次測試發現第二種方式最快,第一種其次,大數據量下 第三種最慢。

測試結果可能不嚴謹。大家僅做參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM