JavaScript中清空数组的三种方式
来源:互联网 发布:mac bluestack模拟器 编辑:程序博客网 时间:2024/06/03 18:14
转自:http://www.cnblogs.com/snandy/archive/2011/04/04/2005156.html
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary.splice(0,ary.length);
3
console.log(ary);
// 输出 [],空数组,即被清空了
view sourceprint?
1
int
[] ary = {
1
,
2
,
3
,
4
};
2
ary.length =
0
;
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary.length = 0;
3
console.log(ary);
// 输出 [],空数组,即被清空了
目前 Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary = [];
// 赋值为一个空数组以达到清空原数组
view sourceprint?
1
var
a = [];
2
for
(
var
i=0; i< 1000000; i++){
3
a.push(i);
4
}
5
var
start =
new
Date();
6
//a = [];
7
a.length = 0;
8
var
end =
new
Date();
9
alert(end - start);
方式1,splice
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary.splice(0,ary.length);
3
console.log(ary);
// 输出 [],空数组,即被清空了
方式2,length赋值为0
这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如
view sourceprint?
1
int
[] ary = {
1
,
2
,
3
,
4
};
2
ary.length =
0
;
Java中会报错,编译通不过。而JS中则可以,且将数组清空了,
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary.length = 0;
3
console.log(ary);
// 输出 [],空数组,即被清空了
目前 Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。
方式3,赋值为[]
view sourceprint?
1
var
ary = [1,2,3,4];
2
ary = [];
// 赋值为一个空数组以达到清空原数组
这里其实并不能说是严格意义的清空数组,只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收。
Ext库Ext.CompositeElementLite类的 clear 使用这种方式清空。
方式2 保留了数组其它属性,方式3 则未保留。很多人认为方式2的效率很高些,因为仅仅是给length重新赋值了,而方式3则重新建立个对象。经 测试 恰恰是方式3的效率高。测试代码:
view sourceprint?
1
var
a = [];
2
for
(
var
i=0; i< 1000000; i++){
3
a.push(i);
4
}
5
var
start =
new
Date();
6
//a = [];
7
a.length = 0;
8
var
end =
new
Date();
9
alert(end - start);
测试结果:
以上结果可看到:方式3更快,效率更高。因此如果不保留原数组的其它属性Ext采用的方式更值得推荐。
阅读全文
0 0
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- JavaScript中清空数组的三种方式
- 用vs2015编译并配置caffe(CPU only)
- JAVA时间格式的处理 SimpleDateFormat 类(小结)
- deap实战_2017中国数学建模大赛_B题_第二题
- (转)jsp base path作用
- bzoj1226 [SDOI2009]学校食堂Dining (状压DP)
- JavaScript中清空数组的三种方式
- spring执行定时任务
- Xmanager Failed to get the installation date from the system registry
- shell中如何显示前后几天的方法
- DP练习2:道路游戏
- grep正则表达式
- 动态代理和静态代理
- java-velocity的用法
- Canonical Correlation Analysis(典型关联分析)
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
单词的英语
单词怎么记
单词表
单词的英文
单词 英文
所有单词
惊喜的单词
努力的单词
知道的单词
责任单词
有的单词
1600单词
非常的单词
语言的单词
写的单词
欢迎单词
近的单词
交流单词
分类单词
因为的单词
希望的单词
努力单词
总是单词
星期英语单词
英语单词大全
星期三英语单词
速记3500个单词顺口溜
英语单词怎么写
颜色英语单词
月份英语单词
颜色的英语单词
十二月英语单词
过目不忘背单词9大记忆法
白色的英语单词
完美的英文单词
必修五英语单词
完美英文单词
常用韩语单词5000
白色英语单词
水果英语单词
十二英语单词