Better way to sum a property value in an array

后端 未结 16 1775
遥遥无期
遥遥无期 2020-11-22 02:41

I have something like this:

$scope.traveler = [
            {  description: \'Senior\', Amount: 50},
            {  description: \'Senior\', Amount: 50},
             


        
16条回答
  •  说谎
    说谎 (楼主)
    2020-11-22 03:32

    Alternative for improved readability and using Map and Reduce:

    const traveler = [
        {  description: 'Senior', amount: 50 },
        {  description: 'Senior', amount: 50 },
        {  description: 'Adult', amount: 75 },
        {  description: 'Child', amount: 35 },
        {  description: 'Infant', amount: 25 },
    ];
    
    const sum = traveler
      .map(item => item.amount)
      .reduce((prev, curr) => prev + curr, 0);
    

    Re-useable function:

    const calculateSum = (obj, field) => obj
      .map(items => items.attributes[field])
      .reduce((prev, curr) => prev + curr, 0);
    

提交回复
热议问题