How to use the sum function from lodash

Find comprehensive JavaScript lodash.sum code examples handpicked from public code repositorys.

lodash.sum is a function in the Lodash library that calculates the sum of an array of numbers.

92
93
94
95
96
97
98
99
100
101
const currentFromDate = _.map(this.files, 'meta.date')
const currentToDate = _.map(this.files, 'meta.date')
// aggregate all stats
this.stats = {
  albums: this.albums.length,
  photos: _.sum(_.compact(_.concat(nestedPhotos, currentPhotos))) || 0,
  videos: _.sum(_.compact(_.concat(nestedVideos, currentVideos))) || 0,
  fromDate: _.min(_.compact(_.concat(nestedFromDates, currentFromDate))),
  toDate: _.max(_.compact(_.concat(nestedToDates, currentToDate)))
}
fork icon80
star icon649
watch icon21

+ 9 other calls in file

1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
    obj.jobsRank,
    obj.usersRank,
    obj.factsRank,
    obj.pageRankLinksRank
  ]
  obj.totalRank = lodash.sum(lodash.sortBy(top3).slice(0, 3))
})
objects = lodash.sortBy(objects, ["totalRank"])

const ranks = {}
fork icon73
star icon647
watch icon6

+ 15 other calls in file

How does lodash.sum work?

lodash.sum is a method in the Lodash library that accepts an array of numbers and returns the sum of those numbers. It can also accept an iteratee function that modifies each element before computing the sum. Internally, it uses a simple for loop to iterate over the array and accumulate the sum.

366
367
368
369
370
371
372
373
374
375
module.exports.startsWith          = _.startsWith;
module.exports.strContains         = _.strContains;
module.exports.stripTags           = _.stripTags;
module.exports.sub                 = _.sub;
module.exports.subtract            = _.subtract;
module.exports.sum                 = _.sum;
module.exports.sumBy               = _.sumBy;
module.exports.tail                = _.tail;
module.exports.take                = _.take;
module.exports.takeRight           = _.takeRight;
fork icon19
star icon122
watch icon0

+ 92 other calls in file

222
223
224
225
226
227
228
229
230
231
params: [num1, num10, num100, num1000],
benchmarks: (array) => {
  const add = (x, y) => x + y
  return {
    iiris: () => A.sum(array),
    lodash: () => _.sum(array),
    ramda: () => R.sum(array),
    native: () => array.reduce(add, 0),
  }
},
fork icon1
star icon31
watch icon0

Ai Example

1
2
3
4
5
const _ = require("lodash");

const numbers = [2, 4, 6, 8, 10];
const sum = _.sum(numbers);
console.log(sum); // Output: 30

In this example, lodash.sum is used to calculate the sum of an array of numbers. The numbers array contains the values [2, 4, 6, 8, 10], and _.sum(numbers) returns the value 30, which is the sum of all the numbers in the array.

321
322
323
324
325
326
327
328
329
330
const file = this.folder.getFile(id)
const sorted = lodash.sortBy(toAdd[id], "sex", row => parseInt(row.age))
const tree = new TreeNode(sorted)
if (!file.has("uscsTable"))
  file.appendLineAndChildren("uscsTable 2019", tree.toDelimited("|"))
const deaths = lodash.sum(
  sorted.map(item => parseInt(item.deaths)).filter(num => !isNaN(num))
)
if (deaths) file.set("uscsDeathsPerYear", deaths.toString())
const cases = lodash.sum(
fork icon12
star icon22
watch icon5

+ 3 other calls in file

572
573
574
575
576
577
578
579
580
581
582
583
584
console.log(round); // => 4


const subtract = _.subtract(6, 4);
console.log(subtract); // => 2


const sum = _.sum([4, 2, 8, 6]);
console.log(sum); // => 20


const sumBy = _.sumBy([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], o => o.n);
console.log(sumBy); // => 20
fork icon0
star icon4
watch icon0

+ 15 other calls in file

56
57
58
59
60
61
62
63
64
65
66
67
68
logger.info('делим число 20 на 2 через curry2 = ' + curriedDivide(10)(2))


//flow ======================= //массив функций которые вызываются последовательно и отдает функцию
const notFlatArray = [1, 2, 3, [4, 5, [6, 7, 8, 9, 10]]] //сумма 55


logger.info('не правильная сумма чисел массива вложенного = ' + _.sum(notFlatArray))


const sumFlat = _.flow([_.concat, _.flattenDeep, _.sum])
//_.concat - соединяем массивы
//_.flattenDeep - избавляемся от многоуровнивости в массиве и делает плоским
fork icon0
star icon1
watch icon0

365
366
367
368
369
370
371
372
373
374
  return _.sumBy(avustuskohteet, _.partial(h.avustuskohdeRahamaara, 'haettavaavustus'));
};

$scope.sumHaettavaElyAvustus = function () {
  var maararahatarpeetSum =
    _.sum(_.values($scope.hakemus.ely)) +
    _.sumBy($scope.maararahatarpeet, 'sidotut') + _.sumBy($scope.maararahatarpeet, 'uudet') - _.sumBy($scope.maararahatarpeet, 'tulot');

  var kehittamishankkeetSum = _.sumBy($scope.kehittamishankkeet, 'arvo');
  return (maararahatarpeetSum + kehittamishankkeetSum);
fork icon2
star icon0
watch icon0

164
165
166
167
168
169
170
171
172
173
174
175
exports.fetchStats = async function(){
    const newStates = [];
    for (const state of STATES) {
        const lgaData = require(`./build/data_lgas_${state.id}`);


        const wardCount = _.sum(lgaData.data.map(l => l.wards.length));


        let puCount = 0;
        let results = 0;

fork icon0
star icon0
watch icon1

354
355
356
357
358
359
360
361
362
363
const wardData = {};
for(const fn of await fs.readdir('./build')) {
    if (!fn.startsWith('data_ward_')) continue;

    const data = require(`./build/${fn}`);
    const numResults = _.sum(data.data.map((pu) => !pu.document?.url || (url.parse(pu.document?.url).pathname === '/') ? 0 : 1) || [0]);

    const ward = _.first(data.wards);
    const wardId = ward.ward_id;
    wardData[wardId] = {
fork icon0
star icon0
watch icon2

+ 3 other calls in file

407
408
409
410
411
412
413
414
415
416
pctTranscribed: (((_.toInteger(puDataRes.submittedCount) || 0) / state.resultCount) * 100),
resultsCount: state.resultCount,
pctUploadedFeb25: ((docsByDate[state.id].feb25 / state.resultCount) * 100),
pctUploadedFeb28: ((docsByDate[state.id].feb28 / state.resultCount) * 100),
pctUploadedMar10: ((docsByDate[state.id].mar10 / state.resultCount) * 100),
votersRegistered: _.sum(puCodeRes.map(r => results[r.puCode]?.votersRegistered || 0)),
votersAccredited: _.sum(puCodeRes.map(r => results[r.puCode]?.syncedAccreditations || 0)),
ballotPapersCount: null,
totalVotesCast: _.sum(puDataResVotes.map(r => r.votesCast || 0)),
totalVotesInvalid: null,
fork icon0
star icon0
watch icon2

+ 89 other calls in file

511
512
513
514
515
516
517
518
519
520

const totalDatePickerbo = _.sumBy(
  selectedDatePicker.map((item) => _.sumBy(item.datepicker, 'qtybo'))
);

const graphYearlyTotal = _.sum(graphLine.map((item) => item.qtyshp));

const graphMonthlyTotal = _.sum(monthLine.map((item) => item.qtyshp));

//forecast
fork icon0
star icon0
watch icon1

+ 29 other calls in file

666
667
668
669
670
671
672
673
674
    for await (const chunk of fileStream) {
        buf.push(chunk);
    }

    const dataGuber = JSON.parse(Buffer.concat(buf).toString());
    numResultsGuber = _.sum(dataGuber.data.map((pu) => !pu.document?.url || (url.parse(pu.document?.url).pathname === '/') ? 0 : 1) || [0]);
} catch (e) {
    console.error(`[fetchStats] error fetching ward key "${key}": ${e}`);
}
fork icon0
star icon0
watch icon2

+ 9 other calls in file

1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
WalletService.prototype._totalizeUtxos = function(utxos) {
  var balance = {
    totalAmount: _.sum(utxos, 'satoshis'),
    lockedAmount: _.sum(_.filter(utxos, 'locked'), 'satoshis'),
    totalConfirmedAmount: _.sum(_.filter(utxos, 'confirmations'), 'satoshis'),
    lockedConfirmedAmount: _.sum(_.filter(_.filter(utxos, 'locked'), 'confirmations'), 'satoshis'),
  };
  balance.availableAmount = balance.totalAmount - balance.lockedAmount;
  balance.availableConfirmedAmount = balance.totalConfirmedAmount - balance.lockedConfirmedAmount;

fork icon0
star icon0
watch icon0

+ 19 other calls in file

374
375
376
377
378
379
380
381
382
383
  return cb();
}

if (wallet.coin == 'xrp') {
  amounts = _.isArray(amounts) ? amounts : [amounts];
  let conf =  _.sum(_.map(amounts, x =>  Number((x*1e6).toFixed(0))));
  conf =  conf + Defaults.MIN_XRP_BALANCE;
  blockchainExplorer.getBalance = sinon.stub().callsArgWith(1, null, {unconfirmed:0, confirmed: conf, balance: conf });
  return cb();
}
fork icon0
star icon0
watch icon0

+ 3 other calls in file

10
11
12
13
14
15
16
17
18
19
const calculateTotalExpenses = (compras) => {
  const gastos = compras.map((a) => parseInt(a.monto));
  if (gastos.length === 0) {
    return 0;
  }
  return _.sum(gastos || 0);
};


export { montoDisponible, nivelDeEjecucion, calculateTotalExpenses };
fork icon0
star icon0
watch icon1

+ 4 other calls in file

54
55
56
57
58
59
60
61
62
rollDice,
roll: (numberOfRolls, die, threshdold = null, mod = 0) => {
  const rolls = rollDice({ die, numberOfRolls });

  let message;
  let sum = _.sum(rolls);
  message = `The result is **${sum}** (${rolls})`;
  let status = null;
  let difference = null;
fork icon0
star icon0
watch icon1

277
278
279
280
281
282
283
284
285
286
287
288
  // -- write file
  fs.writeFileSync(root + filepath, content, charset)
}


function isOnlyOneDefined(arr) {
  return _.sum(arr, (e) => (_.isUndefined(e) ? 0 : 1)) === 1
}


function hasTemplateInstruction(profile, line) {
  // TODO: snippet block
fork icon0
star icon0
watch icon0

147
148
149
150
151
152
153
154
155
156
})

chars = options.chars

if (colWidths) {
  const sum = _.sum(colWidths)

  if (sum !== EXPECTED_SUM) {
    throw new Error(`Expected colWidths array to sum to: ${EXPECTED_SUM}, instead got: ${sum}`)
  }
fork icon0
star icon0
watch icon0

50
51
52
53
54
55
56
57
58
59
console.log(sum1);
//adding arr with reduce
const reducer = (accumulator, curr) => accumulator + curr;
console.log(arr.reduce(reducer));
//adding arr with lodash
var sum = _.sum(arr);
console.log(sum);
console.log("******Map keys demo********");
const map = new Map();
map.set("1", "str1"); // a string key
fork icon0
star icon0
watch icon0

Other functions in lodash

Sorted by popularity

function icon

lodash.get is the most popular function in lodash (7670 examples)