最近有些時間,幫助一個朋友寫了一個系統型別的計算題,涉及瞭如何使用原生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
}
複製程式碼