我有一個索引的JavaScript數組,其中包含81個元素。這些元素將創建9x9網格(類似於Sudoku),但現在我需要找到方法,如何高效地從該數組中獲取行和列值。獲取來自81元素索引數組的行和列值
例如,功能getRow(2)
必須返回9個值的索引數組,放置在81元素數組的第二行,並且getColumn(2)
必須按類推工作。
目前我getRow()
功能如下:
function getRow(rowId){
// Indexes for every row in the 81-element array
var rowIndexes = {
1: [0,1,2,3,4,5,6,7,8],
2: [9,10,11,12,13,14,15,16,17],
3: [18,19,20,21,22,23,24,25,26],
4: [27,28,29,30,31,32,33,34,35],
5: [36,37,38,39,40,41,42,43,44],
6: [45,46,47,48,49,50,51,52,53],
7: [54,55,56,57,58,59,60,61,62],
8: [63,64,65,66,67,68,69,70,71],
9: [72,73,74,75,76,77,78,79,80]
};
// New array for row values
var rowValues = new Array();
for(var i=0; i < 9; i++){
// Getting row value from 81-element array
rowValues.push(GRID_ARRAY[rowIndexes[rowId][i]]);
}
return rowValues;
}
那麼,有沒有更具活力,更加優化的方法如何根據指定的行/列ID計算行和列的值?
謝謝!
再加上用'.slice()'方法,你可以用一行代碼返回一整排。 (當然,列更復雜。) – nnnnnn 2013-05-07 10:53:53