Регистрация: Dec 2002
Адрес: Живу вот где-то
Сообщений: 493
|
Модификация массива и ... сортировка чтоли?!
Доброе время всем! Вот проблемы образовались - прошу помощи.
1. Почему-то 2 массив "column_arr" содержит чушь, хотя трейсы в теле процедуры вроде верные.
 Код:
//Этот массив, собственно, и надо уработать
// Тут 2 варианта массива и переменных: покороче и подлиннее. Переместите комменты...
/*
var cross_arr:Array=[1,1,4,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,
0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,1,0,0,0,6,0,4,6,6,0,0,0,0,2,0,
0,0,0,0,0,1,0,0,0,6,0,4,6,6,0,0,0,2,0,2,0,0,0,0,0,1,0,0,0,6,0,4,4,4,
4,0,5,5,0,0,0,0,0,0,0,0,0,0,0,6,0,4,0,0,0,5,5,0,0,0,0,0,0,0,0,0,0,0,
0,0,4,4,0,0,5,5,0,0,0,3,0,0,0,0,0,0,0,0,0,4,4,4,0,5,5,0,0,0,3,3,3,0,
0,0,1,0,0,0,4,4,4,4,5,5,0,0,0,3,3,3,3,3,0,0,1,0,0,4,4,4,4,4];
var h_cell:Number=20;//кол-во строк в таблице
var v_cell:Number=10;//кол-во колонок (столбцов) в таблице
*/
var cross_arr:Array=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,0,4,3,3,3,0,4,4,2,3,1,1,1,2,3,1,2,2,2,0,1,0,0,0,0];
var h_cell:Number=5;//кол-во строк в таблице
var v_cell:Number=10;//кол-во колонок (столбцов) в таблице
var line_arr:Array=[];//2-мерный массив строк таблицы
var column_arr:Array=[];//2-мерный массив столбцов таблицы
trace(cross_arr.length+'\n');
createArrays();
//
function createArrays(){
var tmp:Array=[];
var n:Number=0;
//Заполняем массив строк
for(var i=0;i< v_cell;i++){
line_arr.push(cross_arr.slice(i*h_cell,(i+1)*h_cell));
}
trace('temporary array : ');
/*
Заполняем массив колонок и, почему-то он(массив) заполняется ПОСЛЕДНИМ значением "tmp".
Хотя сам "tmp" трейсится правильно!!
*/
for( i=0; i< h_cell;i++){
tmp.length=0;
for(var j=0; j<v_cell; j++){
n=j*h_cell+i;
tmp.push(cross_arr[n]);//Пробовал
//tmp.push(line_arr[j][i]);// разные варианты
}
trace(i+' : '+tmp);
column_arr.push(tmp);//Пробовал
//column_arr[i]=tmp;// разные варианты
}
//tracer. Смотрим результаты
trace('\nline_arr[v][h]. v='+line_arr.length+' : h='+line_arr[0].length);
for(i=0; i< line_arr.length; i++){trace(i+' : '+line_arr[i]);}
trace('\ncolumn_arr[h][v]. h='+column_arr.length+' : v='+column_arr[0].length);
for(i=0; i< column_arr.length; i++){trace(i+' : '+column_arr[i]);}
trace('\ncross_arr.length='+cross_arr.length+'\n'+cross_arr);
}
2. Помогите пожалуйста с алгоритмом. Нужно, как-то упорядочить значения обоих массивов "line_arr" и "column_arr". Т.е. в результате, надо получить, что-то вроде списка (значение - количество, значение - количество,...) по каждой строке и колонке.
Возможно, есть вариант решения без промежуточных 2-мерных массивов?
Заранее благодарю за любой конструктивный совет!
|