Как из 20 переменных выбрать наименьшее значение?



  • К примеру, у меня есть 20 переменных с числовыми значениями, как мне вытянуть минимальное из них?



  • @fuckyep
    установить переменную,
    в значении сменить тип со строки на выражение,
    вбить в значение что то вроде

    Math.min([[VAR1]], [[VAR2]], [[VAR3]], [[VAR4]]);
    


  • @tet-vivi said in Как из 20 переменных выбрать наименьшее значение?:

    Math.min([[VAR1]], [[VAR2]], [[VAR3]], [[VAR4]]);

    Тогда переменная [MIN] принимает значение null



  • Я понял в чём проблема.
    У меня в переменных четырехзначные цифры отграничены запятыми. Пример: 1,500.
    Отсюда вытекает следующий вопрос. Как мне сделать, чтобы в числах, где есть запятая, она удалялась?
    P.S не все числа - четырехзначные.



  • @fuckyep, замените переменные на такуюNumber([[VAR]].split(",").join(""))конструкцию

    Пример:

    Math.min(Number([[VAR1]].split(",").join("")), Number([[VAR2]].split(",").join("")), Number([[VAR3]].split(",").join("")), Number([[VAR4]].split(",").join("")));
    


  • @GhostZ said in Как из 20 переменных выбрать наименьшее значение?:

    @fuckyep, замените переменные на такуюNumber([[VAR]].split(",").join(""))конструкцию

    Пример:

    Math.min(Number([[VAR1]].split(",").join("")), Number([[VAR2]].split(",").join("")), Number([[VAR3]].split(",").join("")), Number([[VAR4]].split(",").join("")));
    

    Тоже принципиально не используете регулярные выражения? :D



  • @GhostZ А не проще?

    var s = 12.234
    var s1 = 10.234
    var s2 = 1.2345645
    log(Math.min(parseFloat(s2), parseFloat(s1), parseFloat(s)))
    

    Или у вас какое то принципиальное отношение к Float?



  • Хм, спорите какой говнокод лучше xD Это не камень в @GhostZ, потому что он дал решения для изначально херового подхода.



  • @f0cus, не проще, там
    @fuckyep said in Как из 20 переменных выбрать наименьшее значение?:

    У меня в переменных четырехзначные цифры отграничены запятыми. Пример: 1,500

    То есть в переменной строка "1,500" и её нужно преобразовать в числа 1500, parseFloat() с запятыми не работает, да и если бы работал получилось бы 1.5, а не 1500



  • @GhostZ
    Воспользовался этим решением.
    Спасибо большое.



  • @fuckyep Я бы все же посоветовал положить переменные или сразу их значения в список и затем, что-то вроде

    [[MIN]] = [[LIST_VALUE]].reduce(function(accumulator, currentValue){
      var val = Number(currentValue.replace(',','') )
      return accumulator > val? accumulator : val  
    },0)
    


  • @GhostZ тоесть получаем список значений которые цифры, но с запятыми)) и разбивая их на переменные парсим;-). делим собираем Ну тогда да пожалуй.
    upd toFixed(n) работает и с Float Но все равно сама постановка задачи ставит дичайший говнокодинг).
    @fuckyep воспользуйтесь советом от @UserTrue и вам не надо будет иметь -цать переменных. Он для вас даже функцию составил



  • @f0cus said in Как из 20 переменных выбрать наименьшее значение?:

    @GhostZ тоесть получаем список значений которые цифры, но с запятыми)) и разбивая их на переменные парсим;-). делим собираем Ну тогда да пожалуй.
    upd toFixed(n) работает и с Float Но все равно сама постановка задачи ставит дичайший говнокодинг).

    У автора темы запятые в цифрах находятся не в дробной части, а в тысячных, то есть число может попасться например такое: 1,500.57


Log in to reply
 

  • 5
  • 5
  • 6
  • 3
  • 5
  • 5
  • 6
  • 2