首页 > 解决方案 > 根据约翰逊规则对行进行排序

问题描述

我正在尝试对 jQuery 表的行进行排序,我已经阅读了“排序”方法,但我想知道是否还有其他排序方法,因为我不希望它从最高到最低排序。

我有一个产品安排,上面写着在哪台机器和多长时间,我希望它按机器和时间对行进行排序,也就是说,在机器 1 中订购产品,时间最短。而对于机器二,则相反,它按降序排列产品,但我希望所有东西都在同一个数组中。

简而言之,我的意图是用两台机器对约翰逊算法进行编程,但我不知道如何重新排列。

我的桌子:

 <div class="card-body">
          <table id="example2" class="table table-bordered table-striped">
            <thead>
            <tr>
              <th>Producto</th>
              <th>Menor</th>
              <th id="Machine">Pertenece a</th>
              <th>Hora</th>


            </tr>
            </thead>
            <tbody name="listaElementos2" id="listaElementos2" >

            </tbody>
          </table>

我的功能:

<script type="text/javascript">

  $(document).ready(function(){
   $('#analisis').click(function(){
    obtenerDatosTabla();


  });
  });


  function obtenerDatosTabla(){


  document.getElementById('listaElementos2').innerHTML = '';


  $('#example1 tr').map(function(){

  //metodo de palmer
  let maq1=$(this).find('#OSTHM').eq(0).text(); 
  let maq2=$(this).find('#FTHM').eq(0).text();          
  let maq3=$(this).find('#DTHM').eq(0).text(); 
  let maq4=$(this).find('#CFTHM').eq(0).text(); 
  let maq5=$(this).find('#DLTHM').eq(0).text(); 
  let maq6=$(this).find('#LBTHM').eq(0).text(); 
  let maq7=$(this).find('#NTHM').eq(0).text(); 
  let maq8=$(this).find('#RMTHM').eq(0).text(); 
  let maq9=$(this).find('#E1THM').eq(0).text(); 
  let maq10=$(this).find('#E2THM').eq(0).text(); 
  let maq11=$(this).find('#LTHM').eq(0).text(); 
  let maq12=$(this).find('#C2THM').eq(0).text(); 
  let maq13=$(this).find('#C3THM').eq(0).text(); 
  let maq14=$(this).find('#EKTHM').eq(0).text(); 
  let maq15=$(this).find('#M1THM').eq(0).text(); 
  let maq16=$(this).find('#M2THM').eq(0).text(); 
  let maq17=$(this).find('#CA1THM').eq(0).text(); 
  let maq18=$(this).find('#CA2THM').eq(0).text(); 
  let maq19=$(this).find('#EFTHM').eq(0).text(); 



  let nombre=$(this).find('#nombre').eq(0).text(); 
  let cantidad=$(this).find('#txt-cant').val();




  multi=(2*maq1);
  var F1=multi+parseFloat(maq2)+parseFloat(maq3)+parseFloat(maq4)+parseFloat(maq5)+parseFloat(maq6)+
  parseFloat(maq7)+parseFloat(maq8)+parseFloat(maq9)+parseFloat(maq10)+parseFloat(maq11)+parseFloat(maq12)+
  parseFloat(maq13)+parseFloat(maq14)+parseFloat(maq15)+parseFloat(maq16)+parseFloat(maq17)+parseFloat(maq18);
  multi2=(2*maq19);
  var F2=parseFloat(maq2)+parseFloat(maq3)+parseFloat(maq4)+parseFloat(maq5)+parseFloat(maq6)+
  parseFloat(maq7)+parseFloat(maq8)+parseFloat(maq9)+parseFloat(maq10)+parseFloat(maq11)+parseFloat(maq12)+
  parseFloat(maq13)+parseFloat(maq14)+parseFloat(maq15)+parseFloat(maq16)+parseFloat(maq17)+parseFloat(maq18)+multi2;


   var M1= "Máquina 1";
   var M2= "Máquina 2";

    if(F1<=F2){
     for (var i = 0; i < cantidad; i++) { 
    document.getElementById('listaElementos2').innerHTML +=
   "<td id=nombre>"+nombre+"</td>"+
    "<td id=F1>"+ F1 + "</td>"+
    "<td id=M1>"+ M1 + "</td>"  
     //Llave de If
    }
  }else{
  if(F2<=F1){
    for (var i = 0; i < cantidad; i++) { 
    document.getElementById('listaElementos2').innerHTML +=
   "<td id=nombre>"+nombre+"</td>"+
    "<td id=F2>"+ F2 + "</td>"+
    "<td id=M2>"+ M2 + "</td>"   
  //Llave de for
  }
  //Llave de If
  }
  //Llave de Else
}


  });


  }

  </script>

标签: javascriptjqueryalgorithm

解决方案


推荐阅读