- 沒有新回應!
某案子,常常要清除陣列元素,然後重新給值....
用了最根本的方法-->pop (A方式),@@但總覺不是很優...
今天突然有其它的FU...改成(B方式)...
****************************(A方式)
<html>
<head>
<title>ClearArray</title>
</head>
<body>
<div id=divMsg></div>
<div id=divTime></div>
</body>
</html>
<script type="text/javascript">
var maxLength=10000;
var StartTime = new Date();
var arr = new Array();
for(ii=0;ii<maxLength;ii++)arr[ii]=ii+':Array Value~';
window.document .getElementById ('divMsg').innerHTML +='陣列長度:'+ arr.length +'<br>';
//***************(A方式-start)****//
for(dd=arr.length ;dd>=0;dd--)arr.pop();
//***************(A方式-end)****//
window.document .getElementById ('divMsg').innerHTML +='陣列長度(clear):'+ arr.length +'<br>';
arr[0]='0';
window.document .getElementById ('divMsg').innerHTML +='陣列長度(再給1次值):'+ arr.length +'<br>';
SpendTime=new Date() - StartTime
window.document .getElementById ('divTime').innerHTML ='花費時間:' + SpendTime;
</script>
****************************(B方式)
<html>
<head>
<title>ClearArray</title>
</head>
<body>
<div id=divMsg></div>
<div id=divTime></div>
</body>
</html>
<script type="text/javascript">
var maxLength=10000;
var StartTime = new Date();
var arr = new Array();
for(ii=0;ii<maxLength;ii++)arr[ii]=ii+':Array Value~';
window.document .getElementById ('divMsg').innerHTML +='陣列長度:'+ arr.length +'<br>';
//***************(B方式-start)****//
arr=null;
arr = new Array();
//***************(B方式-end)****//
window.document .getElementById ('divMsg').innerHTML +='陣列長度(clear):'+ arr.length +'<br>';
arr[0]='0';
window.document .getElementById ('divMsg').innerHTML +='陣列長度(再給1次值):'+ arr.length +'<br>';
SpendTime=new Date() - StartTime
window.document .getElementById ('divTime').innerHTML ='花費時間:' + SpendTime;
</script>
結果比較表~~
----------------------------------------------
當陣列(maxLength)長度 100 1,000 10,000
----------------------------------------------
(A)方式 花費時間約:0 花費時間約:47 花費時間約:3234
(B)方式 花費時間約:0 花費時間約: 0 花費時間約:16
----------------------------------------------
速度上也快多了~~(陣列長度愈大,愈有差距哦!!)
目前RUN 是OK~~~但不確定,這樣是不是OK~~


