во втором случае +- нормально, а вот с первым завал...соотвецтвенно логика не совсем что нужно
(()=>{
function distribute(jsonData) {
const data = JSON.parse(jsonData);
const set1 = [];
const set2 = [];
let sum1 = 0;
let sum2 = 0;
for (let idx = 0; idx < data.set.length; idx++) {
const element = data.set[idx];
if ((sum1 + element - sum2) < (sum2 + element - sum1) ) {
set1.push(element);
sum1 += element;
} else {
set2.push(element);
sum2 += element;
}
}
const result = { set_1: set1, set_2: set2 };
return JSON.stringify(result);
}
console.log(distribute('{"set": [4, 5, 6, 7, 8]}'));
console.log(distribute('{"set": [3, 3, 3, 7, 5]}'));
})()
а ещё лучше так, побыстрее будет