Показать сообщение отдельно
  #8 (permalink)  
Старый 26.03.2018, 15:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

поиск ближайшего элемента в массиве
weirdjava,
один из возможных вариантов, ошибка если совсем нет в прелагаемой строке чисел или числа вне диапазона.
элементы не сортируются!!!
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<div id="func_r"></div>
 <script>
function nearestElement(arrayToEnter, valueToCheck) {
    var minN = -10000;
    var maxN = 10000;
    var arrA = arrayToEnter.split(",");
    var ans = arrA.reduce(function(num, el) {
        el = parseInt(el, 10);
        if (!isNaN(el) && el >= minN && el <= maxN) {
            if (num == "ERROR") {
                num = el;
            } else {
                var m = Math.abs(valueToCheck - el);
                var n = Math.abs(valueToCheck - num);
                if (m < n) {
                    num = el;
                }
            }
        }
        return num;
    }, "ERROR");
    return ans;
};

var res = document.getElementById("func_r");
res.innerHTML = nearestElement("1,2,3,4,5", "3.9")

  </script>
</body>
</html>
Ответить с цитированием