Search code examples
lodash

How to change each value in JS object using Lodash


I have an object like:

{ 
  home: 78,
  draw: 81,
  away: 36,
  u0_5: 16,
  o0_5: 26,
  u1_5: 10,
  o1_5: 68,
  u2_5: 48,
  o2_5: 50,
  u3_5: 29,
  o3_5: 31,
  u4_5: 50,
  o4_5: 5,
  u5_5: 68,
  o5_5: 56
}

my goal is to get new same structure object, but with each value multiplied by 100 and get the same structure.

 { 
   home: 7800,
   draw: 8100,
   away: 3600,
   ...
  }

Solution

  • You can use mapValues() to solve this problem, together with a callback to transform each value.

    const result = _.mapValues(data, v => v * 100);
    

    const data = { 
      home: 78,
      draw: 81,
      away: 36,
      u0_5: 16,
      o0_5: 26,
      u1_5: 10,
      o1_5: 68,
      u2_5: 48,
      o2_5: 50,
      u3_5: 29,
      o3_5: 31,
      u4_5: 50,
      o4_5: 5,
      u5_5: 68,
      o5_5: 56
    };
    
    const result = _.mapValues(data, v => v * 100);
    
    console.log(result);
    .as-console-wrapper{min-height:100%;top:0!important}
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>