JSFiddle - React, Tailwind, and code Playground

by Akshay Jain

JavaScript 1.7

input1 = 4;
input2 = [3, 4, 5, 10];
// Read only region start
function maxsoldier(input1, input2) {
  // Read only region end
  let findMax = (a, e) => {
    if (a > e) return a;
    else return e;
  };
  let divideSoldiers = (e, i, a) => {
    if (i == 0) {
      return a.slice(1)
    } else if (i == a.length - 1) {
      return a.slice(0, i);
    } else {
      return [a.slice(0, i), a.slice(i + 1)]
    }
  }
  let sortSoldiers = e => {
    if (e[0] instanceof Array) {
      return [e[0].sort((a, b) => a - b), e[1].sort((a, b) => a - b)];
    } else {
      return e.sort((a, b) => a - b);
    }
  }
  let getCapableSoldiers = e => {
    if (e[0] instanceof Array) {
      return [e[0].slice(-2), e[1].slice(0, 2)]
    } else {
      return e;
    }
  }
  let getTotalSoldiers = e => {
    if (e[0] instanceof Array) {
      return e[0].reduce((a, e) => a + e, 0) + e[1].reduce((a, e) => a + e, 0);
    } else {
      return e.reduce((a, e) => a + e, 0);
    }
  }
  let soldierArray = input2.map(divideSoldiers)
    .map(sortSoldiers).map(getCapableSoldiers).map(getTotalSoldiers);
	console.log(soldierArray);
  return [soldierArray.findIndex(findMax), soldierArray.find(findMax)]


}
console.log('hi')
console.log(maxsoldier(input1, input2));