多維陣列迭代器應用

2021-08-24 23:57:27 字數 863 閱讀 6827

在**之美中提到了這個問題,經常遇到巢狀陣列的情況即多維陣列情況,有時並關心巢狀結構,而只關心裡面的資料處理,那麼一般的自己寫對應的for迴圈來拆除對應的巢狀陣列,如果同書中所說編寫通用的 iterator 迭代器,則可不必對不同的巢狀迴圈編寫不同的for迴圈,只需同的操作即可,還可方便的處理維slice情況,對每一維都可控制到底要處理哪些資料:

例子:

處理二維陣列:

1 2 3 4

5 6 7 8

9 x y z

中的

2 36 7

資料 手工for迴圈處理

for(var i=0;i<2;i++)

}

採用迭代器

var matrix = [

[1, 2, 3, 4],

[5, 6, 7, 8],

[9, 'x', 'y', 'z']

];var dimrange = [

//第一維 0-1迴圈

,//第二維 1-2 迴圈

];var iter = new matrixiter(dimrange, matrix);

var item;

var re = ;

while (item = iter.next())

可見採用迭代器後,**更加簡潔,以及更好掉頭,只需更改 dimrange 配置,省去了大段修改 for 的麻煩,贊

演示 @google code

Vector 迭代器 陣列

標準庫型別vector表示物件的集合,其中所有的物件型別都相同 集合中每個物件都有乙個與之對應的索引,索引用於訪問物件。vector是乙個類模板,是模板而非型別。1.初始化vector物件 vectorv1 t型別空vector,執行預設初始化 vectorv2 v1 v2包含所有v1元素的副本 v...

JSTL迭代器 陣列

web開發中頁面上集合元素的顯示是經常用到的,迭代器也很多,包括jstl struts標籤以及其他是圖層框架的標籤,用法和語法很類似,下面是使用jstl實現的例子,先看 引數的解釋在下面 int a1 int a2 request.setattribute a1 a1 request.setattr...

js陣列迭代器

every 該函式一旦返回false,則立即停止當前迭代 var numbers 1,2,3,4,5,6,7,8,9,10 var everyresult numbers.every function item,index,array console.log everyresult some 該函式...