javascript(数组)

var arr = new Array();

arr[‘test’] = “this is a test”;

这样可以给一个数组添一个值。但是访问下arr.length会发现其值为0.

而且arr.pop()返回值为undefined.直接alert(arr)为空。

在这种情况下不管有多少个关联值。arr.push(“hahah”);

arr[0]这个值就是hahah.此时arr.length=1.

这说明什么问题呢。

只有push 或arr[index] = “fdsa”的方式才会影响arr.length和 toString()方法的返回值。

以关联数据添加进来的数据只能通过arr[key]来访问,不能通过索引。

用delete时。delete arr[0]只能把该值变成undefined.实际上此时arr.length并没有改变.

要真正地删除数组的一个元素要用arr.splice(start,deleteCount,[item])方法 .

其返回值是删除掉的元素。

为什么会这样呢!我想key,value并不是数组专有的。还是Array作为一个对象有的能力。所有数组的操作是只针对索引的。其余的操作其实作为对象所共有的。