さて、私はこの配列を持っています:
var arr = [
{
"job": "j1",
"at": 0,
"bt": 8
},
{
"job": "j2",
"at": 2,
"bt": 3
},
{
"job": "j3",
"at": 3,
"bt": 1
},
{
"job": "j1",
"at": 6,
"bt": 3
}
]
ここat
で は到着時間、bt
はバースト時間です。さて、私はこのソート機能を持っています:
Array.prototype.sort = function(by) {
this.sort(function(a,b){
if(a[by] < b[by])
return -1;
if(a[by] > b[by])
return 1;
return 0;
});
};
これは、指定されたパラメーターに従ってオブジェクトの配列をソートします。ここで、すべての要素を反復処理してから、各要素のバースト時間を反復処理し、他の要素のいずれかに現在の時間と等しい到着時間が含まれているときに停止したいと考えました。一致が見つかったら、それらのバースト時間を比較し、別の要素のバースト時間が短い場合は、現在の要素の経過時間をそのバースト時間から差し引き、次の要素に進みます。
これまでのところ、私はそのロジックを持っていますが、まだそれを実装する方法を見つけることができません:
for(i = 0; i < arr.length; i++) {
for(j = arr[i].at; j < arr[i].bt; j++){
// some other things
}
}