Помогите пожалуйста составить алгоритм в котором из одного рандомного массива нужно сделать два массива суммы которых будут равны, или же максимально близки друг к другу в случаи если не делится на 2. Я попытался набросать логику, ну не до конца корректно, помогите пожалуйста
const jsonRequestArrNumbers = [3,3,3,7,5]
const objSeporateArr= seporateSum(jsonRequestArrNumbers)
function seporateSum(arr){
const counterArr = sumArr(arr)/2,
lengthArr = arr.length-1,
set1 =[],
set2 =[]
const sortArr = arr.sort((a,b)=> {
return a-b
})
console.log(sortArr)
if(lengthArr>=1){
sortArr.forEach(el => {
const reduceSum1=sumArr(set1),
reduceSum2=sumArr(set2)
// reduceSum1>=reduceSum2 ? set2.push(el) : set1.push(el)
if(reduceSum1>=reduceSum2 && reduceSum2 <= counterArr){
set2.push(el)
}else if(reduceSum1>=reduceSum2 && reduceSum2>=counterArr){
set1.push(el)
}else if(reduceSum1<=reduceSum2 && reduceSum1<=counterArr){
set1.push(el)
}else if(reduceSum1<=reduceSum2 && reduceSum1>=counterArr){
set2.push(el)
}
})
}
return{
set1:set1,
set2:set2
}
}
function sumArr(arr){
let res=arr.reduce((sum,prev)=>{
sum+=prev
return sum
},0)
return res
}
console.log(objSeporateArr)