标签:注意 函数 asc 类型 设置 java 方法 [1] console
JavaScript的数组,相比其他语言,是比较特殊的。数组是Object类型,只不过,有几个比较特殊的地方:
1 var a = [1,2]; 2 a[‘r‘] = 6; 3 for(var key in a) 4 { 5 console.log(‘key:‘+key + ‘;value:‘ + a[key]); 6 } 7 8 // output 9 key:0;value:1 10 key:1;value:2 11 key:r;value:6
可以看到,如果不指定key值,数组会自动添加默认索引下标值,将其作为key。
这种情况下,length又是如何计算的呢?
1 var a = [1,2]; 2 a[‘r‘] = 6; 3 console.log(a.length); //output: 2 4 5 var b = []; 6 b[0]=1; 7 b[2]=5; 8 console.log(b.length); //output: 3
从上面的代码可以看出,length值是根据最大的索引下标计算的,也就是说,
那么,如果在数组上面应用Object的delete方法会怎么样呢?
1 var a = [1,2]; 2 a[‘r‘] = 6; 3 delete a[1]; 4 5 console.log(a.length); // output: 2 6 console.log(a); // output: [1, undefined]
利用delete可以删除数组的元素值,但是,无法删除它的索引下标,所以,数组的length值不会改变。
如果要真正的删除数组元素,必须使用splice函数,如下:
var a = [1,2]; a[‘r‘] = 6; a.splice(1,1); console.log(a); //output: [1]
标签:注意 函数 asc 类型 设置 java 方法 [1] console
原文地址:http://www.cnblogs.com/etianqq/p/6193598.html