怎么清空javascript数组 在javascript怎么清空数组
怎么清空javascript数组
当一个数组需要清空的时候,很多人使用下面的方法:
复制代码 代码如下:a = []
我们知道javascript变量存储方式分为引用类型和直接量。数组属于对象,即引用类型,引用的是变量指针地址,之所以这样设计也是为了节省内存。
再说到上面的请空数组的方式,如果采用直接赋值一个新数组的方式,那么之前引用的数组可能不会被释放(有其他的引用),例如下面的代码:
复制代码 代码如下:var a = [2,3]var b = aa = []console.log(b)
这时候a和b就不是同一个数组了,清空了a而b还是指到之前的引用地址,除非你是故意的,否则这将会有隐患。
所以最佳的请空数组方式是:将length设置为0,即:
复制代码 代码如下:a.length = 0
在javascript怎么清空数组
方式1,splice
var ary = [1,2,3,4]
ary.splice(0,ary.length)
console.log(ary) // 输出 [],空数组,即被清空了
方式2,length赋值为0
这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如
int[] ary = {1,2,3,4}
ary.length = 0
Java中会报错,编译通不过。而JS中则可以,且将数组清空了,
var ary = [1,2,3,4]
ary.length = 0
console.log(ary) // 输出 [],空数组,即被清空了
目前 Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。
Javascript如何判断数组为空?
var s = []
if(s.length == 0)alert(空数组)
但是如果你数组里面有用字符串当key的话这个方法会忽略掉那些key。
如
var s = []
s[0] = 1
s[1] = 2
s[name] = 张三
alert(s.length)
得到2!
如果你直接跳过前面的key,而写一个较大的值当第一个key,如:
var s = []
s[5] = 1
alert(s.length)
得到6!