JSFiddle - React, Tailwind, and code Playground

by jfriend00

JavaScript

function distributeWidth(len, totalWidth) {
    var results = new Array(len);
    var coreWidth = Math.floor(totalWidth / len);
    var extraWidth = totalWidth - (coreWidth * len);
    var w,s;
    for (var i = 0; i < len; i++) {
        w = coreWidth;
        if (extraWidth > 0) {
            w++;
            extraWidth--;
        }
        if (i % 2 == 0) {
            s = i/2;               // even, put on front of array
        } else {
            s = len - ((i+1)/2);   // odd, put on end of array
        }
        results[s] = w;
    }
    return(results)
}

var len = 9;           // set this to desired number of elements
var fullWidth = 140;   // set this to available width

var a = distributeWidth(len, fullWidth);

var output = "";
for (i = 0; i < a.length; i++) {
    output += a[i] + ", ";
}

alert(output.slice(0,-2));