原聲寫法操作table

肆無忌憚的青春發表於2018-10-25

最近有些時間,幫助一個朋友寫了一個系統型別的計算題,涉及瞭如何使用原生demo操作table

業務需求

1.當點選先來先服務演算法獲取 程式 建立時間 執行時間 進行計算

2.點選短作業演算法 獲取 程式 建立時間 執行時間 進行計算

原聲寫法操作table

		// 計算服務演算法
	     function CalculationServices(){
			 var obj= new Calculation()
			 obj.CalculationServices();
		 }
		 // 計算作業演算法
	     function CalculationWork(){
			var obj=new Calculation()
			obj.CalculationWork()
		 }
		  // 清除
		  function Calculationclear(){
			//alert('清除')
		 }

		 function Calculation(){
			 // 獲取值 
			 this.process= this.Obtain(0);
			 this.Creation= this.Obtain(1);
			 this.Running= this.Obtain(2);
		 }
		 // 短作業演算法 
		 Calculation.prototype.CalculationWork= function (){
			
			// 開始計算
			var EndTime=this.EndTime([this.process,this.Creation,this.Running])
			var TurnoverTime =this.TurnoverTime([process,Creation,Running])
			var WeightedTurnoverTime=this.WeightedTurnoverTime([process,Creation,Running])
			// 設定值
			this.settdValue(EndTime,3)
			this.settdValue(TurnoverTime,4)
			this.settdValue(WeightedTurnoverTime,5)
		 }

		 // 先來先服務演算法 
		 Calculation.prototype.CalculationServices=function(){
			// 開始計算
			var EndTime=this.EndTime()
			var TurnoverTime =this.TurnoverTime()
			var WeightedTurnoverTime=this.WeightedTurnoverTime()
			// 設定值
			this.settdValue(EndTime,3)
			this.settdValue(TurnoverTime,4)
			this.settdValue(WeightedTurnoverTime,5)
		 }
		 
		 // 結束時刻	公式
	     Calculation.prototype.EndTime= function(){
           var process=  this.process;var Creation=  this.process;var Running=  this.process;
			 var data=[]
				for(var t in process[0]){
					data.push(
                        process[0][t]+Creation[1][t]+Running[2][t]
					)
				}
			return data
		 }
		 // 週轉時間 公式
		 Calculation.prototype.TurnoverTime =function (){
             var process=  this.process;var Creation=  this.process;var Running=  this.process;
			var data=[]
				for(var t in process[0]){
					data.push(
						(process[0][t]+Creation[1][t])-Running[2][t]
					)
				}
			return data
		 }
		 // 帶權週轉時間 公式
		 Calculation.prototype.WeightedTurnoverTime= function (){
             var process=  this.process;var Creation=  this.process;var Running=  this.process;
			var data=[]
				for(var t in process[0]){
					data.push(
                        process[0][t]+Creation[1][t]+Running[2][t]
					)
				}
			return data
		 }

		 // 獲取程式 建立時間 執行時間	
		Calculation.prototype.Obtain = function (index){
			 var dataObject=[];
			 var table = document.querySelector('table');
			 dataObject=gettdValue(table,index);
			 return dataObject;
		 }
		 // 獲取td
		 function gettdValue(table,i){
			 var value={};
			var td= table.querySelectorAll('tr')[i].querySelectorAll('td');
			td.forEach(function(element,index){
				if(index!==0){
					value[index-1]= element.querySelector('input').value?parseFloat(element.querySelector('input').value):element.querySelector('input').value
				}
			});
			return value
		 }
		 // 設定值
		 Calculation.prototype.settdValue= function (dataValue,i){
			var   gettype=Object.prototype.toString;
			if(gettype.call(dataValue)!=='[object Array]'){
				alert("型別錯誤");
				return;
			}
			 var value={};
			 var table = document.querySelector('table');
			dataValue.forEach(function(value,index){
					var td= table.querySelectorAll('tr')[i].querySelectorAll('td');
					td[index+1].innerHTML=value;
			});
			return value
		 }
複製程式碼

相關文章