JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<div id="result">

</div>

JavaScript

function roundPercentages(l, target) {
    var off = target - _.reduce(l, function(acc, x) { return acc + Math.round(x) }, 0);
    let alreadySubstracted = false;
    let substraction = false;
    return _.chain(l).
            map(function(x, i) { 
                lastSubstraction =  (i >= (l.length + off)) && !lastButOneSubstraction;
                lastButOneSubstraction = (l[i+1] == 0 && i+1 >= (l.length + off) && !(i >= (l.length + off)));
            
                return Math.round(x) + (off > i) - (lastSubstraction || lastButOneSubstraction) 
            }).
            value();
}

document.getElementById("result").innerHTML = roundPercentages([52.6813880126183, 5.941114616193481, 24.55310199789695, 8.780231335436383, 8.04416403785489,0], 100);