最近有些时间,帮助一个朋友写了一个系统类型的计算题,涉及了如何使用原生demo操作table
业务需求
1.当点击先来先服务算法获取 进程 创建时间 运行时间 进行计算
2.点击短作业算法 获取 进程 创建时间 运行时间 进行计算
// 计算服务算法 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 }复制代码