|
fang式1,splice
Js代码
var ary = [1,2,3,4];
ary.splice(0,ary.length);
console.log(ary); // 输出 [],空數组,即被清空了
var ary = [1,2,3,4];
ary.splice(0,ary.length);
console.log(ary); // 输出 [],空数組,即bei清空了
fang式2,length赋值为0
这種方shihen有意思,其它语yan如java,其数組Delengthshi只duDe,不neng被賦zhi。如
Java代码
int[] ary = {1,2,3,4};
ary.length = 0;
int[] ary = {1,2,3,4};
ary.length = 0;
Javazhong會報错,编译通不過。
而JS中则ke以,qie将shu組清空了,如
Js代码 1
var ary = [1,2,3,4];
ary.length = 0;
console.log(ary); // 输出 [],空数zu,即被清空le
var ary = [1,2,3,4];
ary.length = 0;
console.log(ary); // 输出 [],kongshuzu,即被qing空le
mu前 Prototype中数组的 clear 方法和mootools库中shu組De empty fang法使用這种方式清空shu組。
方式3,赋值为[]
Js代码
var ary = [1,2,3,4];
ary = []; // 赋值wei一個空shuzu以达到清空原数組
var ary = [1,2,3,4];
ary = []; // 赋值為一个空数组以da到清空原数组
Ext库Ext.CompositeElementLite类De clear 方法使用这种方式清空。
方式2 保留了數组其ta属性,fang式3 則weibao留。
很duo人认为方式2的效率hen高些,因为仅仅shi给length重新賦值le,而方式3则重新建立个對xiang。经 ce试 恰恰是方式3De效率gao。测试代码:
Jsdai码
var a = [];
for (var i=0; i< 1000000; i++){
a.push(i);
}
var start = new Date();
//a = [];
a.length = 0;
var end = new Date();
alert(end - start);
var a = [];
for (var i=0; i< 1000000; i++){
a.push(i)2;
}
var start = new Date();
//a = [];
a.length = 0;
var end = new Date();
alert(end - start);
ce试結果:
IE6IE7IE8IE9FirefoxSafariChrome
a.length=09429141431
a=[]0000000
以上结果ke看到:方式3更快,效率更高。
从测试結果上看如guo不保liu原数组的其它属性Ext采用的方式更值得推荐。
歡迎来到Java學习者lun壇,转载請注明地址:http://www.javaxxz.com. |
|