lilobase
1/29/2016 - 1:50 PM

surface.js

const boxes = [[2, 3, 4], [1, 1, 10]];

const sides = (box) => [box[0]*box[1], box[1]*box[2], box[2]*box[0]];
const smallest_side = (sides) => Math.min(...sides);
const box_surface = (sides) => ((sides[0] + sides[1] + sides[2]) * 2) + smallest_side(sides);

function total_surface_area(boxes) {
  return boxes.reduce((acc, box) => {
    return acc + box_surface(sides(box));
  }, 0);
}

console.log(total_surface_area(boxes));