Я пытаюсь вычислить полученное значение отношения для заданного числа, пропорционально распределенного по заданному массиву. Длина массива будет случайной. например
var arr = [45,23,7]
function array(arr){
var share = 3250.00
// logic to share the array
return array
}
Я не могу получить правильное распределение, я знаю, что нет ни Math.sum, ни Math.ration, что лучший подход к этому без использования сложных нормализаций
Это должно сделать трюк, предполагая, что вы пытаетесь распределить стоимость share
пропорционально среди членов arr
исходя из их доли от общей суммы массива:
var arr = [45,23,7];
function ration(arr, share){
var total = arr.reduce(function(x, y) {
return x + y;
});
return arr.map(function(x) {
return (x / total) * share;
});
}
var rationedArr = ration(arr, 3250.00);
Я отключил значение share в аргументе, чтобы сделать функцию более гибкой и переименовал функцию ration
потому что вызов этого array
- плохая идея.
Math.sum
или эквивалентной функции.