Найдите ближайшее число в таблице к определенному числу

#javascript #jquery

Вопрос:

У меня есть таблица чисел, в которой я хочу найти ближайшее число к определенному числу и изменить его цвет. Друзья, как это можно сделать?

 function Cf(){
  $("td").each(function () {
      let v=$("#s1").val()
      if(this.innerHTML<v){
         this.style.color="red"
      }else{
         this.style.color="black"
      }  
  })
 } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
  <tr>
    <td>100</td>
    <td>70</td>
    <td>30</td>
    <td>50</td>
    <td>10</td>
    <td>50</td>
    <td>90</td>
    <td>20</td>
    <td>40</td>
  </tr>
</table>

<select id="s1" onchange="Cf()">
  <option value="83">83</option>
  <option value="23">23</option>
  <option value="73">73</option>
  <option value="63">63</option>
  <option value="53">53</option>
</select> 

Ответ №1:

 function Cf() {
    let innerhtml = [];
    $("td").each(function () { 
        innerhtml.push(this.innerHTML)
    });

    const needle = $("#s1").val();
    const closest = innerhtml.reduce((a, b) => {
        return Math.abs(b - needle) < Math.abs(a - needle) ? b : a;
    });

    $("td").each(function () {
        if (this.innerHTML === closest) {
            this.style.color = "red"
        } else {
            this.style.color = "blue"
        }
    });
    console.log(closest)

} 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
   <tr>
     <td>100</td>
    <td>70</td>
    <td>30</td>
    <td>50</td>
    <td>10</td>
    <td>50</td>
    <td>90</td>
    <td>20</td>
    <td>40</td>
  </tr>
</table>

<select id="s1" onchange="Cf()">
   <option value="83">83</option>
   <option value="23">23</option>
   <option value="73">73</option>
   <option value="63">63</option>
   <option value="53">53</option>
</select> 

Комментарии:

1. Привет. Спасибо вам за вашу помощь. Но я думаю, что этот фрагмент кода` $(«опция»).каждая(функция () { если (!val_option.включает($(это).val())) { val_option.push($(это).val()) }; });` бесполезно. я прав?

2. пожалуйста, да, вы правы, просто чтобы убедиться