邪神呀---concat

  说下javascript中的concat, 这家伙害得我很惨呀。  

 

  话说:concat可以连接数组,这个功能在js运用中功不可没。

 

 

	var arr=['z','s','k'];
	var arr02=['xx'];
	
	var b=arr.concat(arr02);

 

 

这个代码运行结果b=['z','s','k','xx']  ,  很好呀,很不错呀,就是应该这样的。 没错地。 接下来:

 

 

	var arr=['z','s','k'];
	arr['name']='zsk'; //添加了这行代码
	var arr02=['xx'];
	
	var b=arr.concat(arr02);

 

 

上面一段代码运行结果 b=['z','s','k','xx']  , 有问题吗,没有问题吗? 当然有问题, 这行代码:

arr['name']='zsk'; //添加了这行代码

给数组arr添加了一个键为name值为zsk的元素。  用了concat方法这个就没了。 我勒个去,concat方法把数组中非数字索引元素给去了,谁叫你这么做的。

 

1. concat方法会把相连接的数组中非数字索引的元素给删了。 

附: 组数组添加非数字键的元素如:arr['name']='zsk'   ,  arr数组的length属性没有变,即没有加一。 

所以用for(var i = 0; i < arr.length; i++){...} 方法 无法取得非数字键的元素即arr['name'] 。 可以用 for(var i in arr){.....}  可以得到。

 

 

 

 

 

posted @ 2010-08-17 21:09  z s k  阅读(360)  评论(7编辑  收藏  举报