原文:http://www.02web.com/hublog/article.asp?id=344
數組在平時越用越多,可惜它自身沒有一個遍歷的方法
下面這樣是最簡單的一個簡歷方法,直接設置數組對象的
JavaScript代碼
- Array.prototype.each?=? function (?callback ){??
- for (? var ?i?=?0?,j?=? this .length?;?i?<?j?;?i++?){??
- ????callback.call( this, this[i], i );??
- ????}?????
- ?}??
上面的可以這樣使用
JavaScript代碼
- //遍歷一個數組如果是它是數組,就把它乘以10再輸出 ??
- var ?testArray?=?[1,2, '我' , '不' ,3,5];??
- testArray.each( function( value ){??
- ????typeof?value?==?'number'???alert( value *10 ):null;??
- })??
改變一個數組的內容
JavaScript代碼
- //遍歷每個元素并且在它的前面加上chinese ??
- var ?testArray?=?[1,2, '我' , '不' ,3,5];??
- ????testArray.each( function( value, index ){??
- ????????this[index]?=?'chinese'?+?value;??
- })??
- ??
- testArray.each( function( v ){??
- ????alert(v);??
- })??
如果是一個多維數組呢?不停地調each就行了,下面修改each方法
JavaScript代碼
- //首先引入一個isArray函數,這個函數非常有用,必備~ ??
- isArray?=?function( arrayObj ){??
- ????return?arrayObj?&&??
- ???????typeof?arrayObj?===?'object'?&&??
- ???????typeof?arrayObj.length?===?'number'?&&??
- ???????typeof?arrayObj.splice?===?'function'???
- ????}??
- ??
- Array.prototype.each?=?function(?callback){??
- ??for(?var?i?=?0?,j?=?this.length?;?i?<?j?;?i++){???
-
???isArray(
this
[i]
)?
this
[i].each( callback ):?
???????callback.call( this, this[i], i );?? - ???}??????
- }??
下面可以試驗一下
JavaScript代碼
- var ?testArray?=?[1,2,[ 'sdf' , '2sdf' ],[12313,[[34,45]]]];??
- testArray.each(function(v){??
- ????alert(v);?//輸出1,2,sdf,2sdf,12313,34,45??
- })??