JSFiddle - React, Tailwind, and code Playground

by Prashanth bhat

HTML

debug(a)
      return a[0].abs if a.size > 0 && a.uniq.size == 1
      # fix for [-1, -2, -3, ...]
      b = a.sort_by(&:abs)
      return b[0].abs if b[-1].abs == b.size

      if a.size != 2

        a.sort!

        cur_sum = 0
        min_sum = fix_num_max = 2 ** (0.size * 8 - 2) - 1 #ruby FIXNUM_MAX

        a.each do |i|
          cur_sum += i
          min_sum = [min_sum, cur_sum].min.abs
          cur_sum = [cur_sum.abs, fix_num_max].min
        end
      else
        min_sum = a.inject{|sum, x| sum + x}.abs
      end

      [a[0].abs, a[-1].abs, min_sum].min

JavaScript

var input = [2,-4,6,-3,9];
var output  = sol(input);


function sol(inArray){
    if(inArray.size == 1){
     return inArray[0];   
    }
    inArray.sort(inArray);
    console.log(inArray);
}
input.sort(function(array) {
  var avg = array.reduce(function(previousValue, currentValue) {
    return previousValue + currentValue;
  }, 0);
  avg /= array.length;
  return function(x, y) {
    return Math.abs(x - avg) - Math.abs(y - avg);
  };
}(input));



/*a.filter( onlyUnique 
function onlyUnique(value, index, self) { 
    return self.indexOf(value) === index;
}*/