1. 程式人生 > >求陣列每列最大值

求陣列每列最大值

#實現程式碼

	var arr=[
			[1,2,5,9],
			[4,6,2,8],
			[2,5,7,4],
			[3,7,8,1],
			[0,4,1,2]
	];

	//建立一個空陣列,用來接收每一列最大數所在的行數
	var hang=[];

	//建立一個數組,用來存放每一列的第一個數值,用來做迴圈中max的比較,並存儲每一列的最大數的數值
	var a_max=[];
	for(var i=0;i<arr[0].length;i++) {
		a_max.push(arr[0][i])
	}
	// console.log(a_max)
	//迴圈每一列
	for (var i=0;i<
arr[0].length;i++) { //設定一個開關初始值為true var bool=true; for (var j=0;j<arr.length;j++) { //如果存在最大值的交換則建立一個變數接收發生交換的行數(每次發生交換時,變數的值都會被當前發生交換的行數覆蓋) if (a_max[i]<arr[j][i]) { a_max[i]=arr[j][i]; var idx=j; //如果發生了最大值交換,開關的狀態變為false bool=false; }; }; //如果在一列的迴圈中,沒有發生過最大值交換(也就是說,第一個數就是最大值)
if (bool) { //則把第一行放進用來接收最大數所在的行數的陣列中 hang.push(0); }else { //否則就把用來接收最大值所在行數的變數存入這個陣列中 hang.push(idx); }; }; // console.log(hang) //for迴圈,用*標記出每一列最大值 for (var i=0;i<arr[0].length;i++) { arr[hang[i]][i]='*'+arr[hang[i]][i]; // console.log('('+hang[i]+','+i+')') } //將該陣列渲染到html中 var
table=document.createElement('table'); document.getElementById('box').appendChild(table); for (var i=0;i<arr.length;i++) { var tr=document.createElement('tr'); table.appendChild(tr); for (var j=0;j<arr[i].length;j++) { var td=document.createElement('td'); td.innerHTML=arr[i][j]; tr.appendChild(td); }; };

#實現效果
實現效果