Если у вас есть доступный lodash, вы можете сделать шаг разделения прохладным (или отвратительным) однострочным способом, используя _.zip
Создает массив сгруппированных элементов, первый из которыхсодержит первые элементы данных массивов, второй из которых содержит вторые элементы данных массивов и т. д.
_.zip(['a', 'b'], [1, 2], [true, false]);
// => [['a', 1, true], ['b', 2, false]]
Вы можете попробовать это:
const _ = require('lodash');
const scoreArray = ["45/60", "60/60", "40/40","30/40", "15/20", "30/40", "30/60", "20/40"];
const sortedScores = _.zip(..._.map(scoreArray, s => s.split('/')));
// [ [ '45', '60', '40', '30', '15', '30', '30', '20' ],
// [ '60', '60', '40', '40', '20', '40', '60', '40' ] ]
Первый массив имеет первые значения, а второй массив ... имеет вторые значения!После этого вы можете пойти дальше и использовать reduce
, как предлагали другие ответы.Lodash также предлагает функцию _.sum
, которую вы можете использовать для экономии накладных расходов:)