亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在計算最小值時排除某些行

在計算最小值時排除某些行

胡說叔叔 2022-08-27 15:06:50
我有下表,我需要在該列中找到最小值。在本例中,值為 20。但是,我需要排除最后2個部分名稱,并使用單元格中的其余值來計算最小值。在這種情況下,最小值應為 100。以下是我用于計算最小值的代碼:function getMin() {  var maximum = 0;  jQuery(".used").each(function() {    $used= jQuery(this).val();    var usedValue = $used.replace(/,/g, "");    value = parseFloat(usedValue);    maximum = (value > maximum) ? value : maximum;  });  var min = maximum;  jQuery(".used").each(function() {    $used = jQuery(this).val();    var usedValue = $used.replace(/,/g, "");    value = parseFloat(usedValue);    min = (value < min) ? value : min;  });  jQuery(".minimum").val(min);}<div><input type="text" class="minimum" name="minimum" id="minimum" value="" size="5" onchange="getMin();" readonly>cycles</div> 我找不到一種方法來排除這里的最后2個值。行數也可能不同并且不固定,因此我需要根據這2個字符串值將其排除。任何幫助是值得贊賞的!提前感謝您!
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

這是一個快速而骯臟的解決方案。循環遍歷每行的父對象,如果標簽(文本)是這些字符串之一,則忽略 used 的值。


我還更新了最小函數,以對值數組使用 math.min。


function getMin() {


  let vals = [];


  $(".row").each(function() {

    if ($(this).find("label").html() != "Ignore") {

      $used = $(this).find(".used").val();

      var usedValue = $used.replace(/,/g, "");

      vals.push(parseFloat(usedValue));

    }

  });


  let min = Math.min(...vals);


  $(".minimum").val(min);

}


getMin();

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="row">

  <label>Ignore</label>

  <input type="text" class="used" value=41>

</div>


<div class="row">

  <label>Keep</label>

  <input type="text" class="used" value=222>

</div>


<div class="row">

  <label>Keep</label>

  <input type="text" class="used" value=200>

</div>


<div><input type="text" class="minimum" name="minimum" id="minimum" value="" size="5" onchange="" readonly>cycles</div>


查看完整回答
反對 回復 2022-08-27
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

我會以某種方式在HTML中標記這些不同的行,比如說用類。在JavaScript中對標簽進行硬編碼會帶來麻煩。excluded

下面是一個示例,最后使用類:excluded<tr>

const min = Math.min(...$(':not(.excluded) .used').map(function () {
    return Number($(this).val());
}).get());


查看完整回答
反對 回復 2022-08-27
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

你可以這樣做:在你的函數中排除每個具有第一列的列,其中包含要排除的2個字符串中的任何一個:each()<tr>


function getMin() {


  var maximum = 0;


  jQuery(".used").each(function() {

    $used = jQuery(this).val();

    var usedValue = $used.replace(/,/g, "");

    value = parseFloat(usedValue);

    maximum = (value > maximum) ? value : maximum;

  });


  var min = maximum;


  jQuery("tr").each(function() {

     var check = jQuery(this).find("td:nth-child(1)").text();

     if (!check.includes("Fan Blade") && !check.includes("Annulus Filler")) 

     {

       $used = jQuery(this).val();

       var usedValue = $used.replace(/,/g, "");

       value = parseFloat(usedValue);

       min = (value < min) ? value : min;

     }

  });


  jQuery(".minimum").val(min);

}

getMin();

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>

<tr>

  <td></td>

  <td></td>

  <td><input class="used" value="100" /></td>

</tr>

<tr>

  <td>Fan Blade (26 off)</td>

  <td></td>

  <td><input class="used" value="50" /></td>

</tr>

<tr>

  <td>Annulus Filler (26 off)</td>

  <td></td>

  <td><input class="used" value="50" /></td>

</tr>

</table>

<div><input type="text" class="minimum" name="minimum" id="minimum" value="" size="5" onchange="getMin();" readonly>cycles</div> 


查看完整回答
反對 回復 2022-08-27
  • 3 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號