[Solved] Sort big array into smaller by value in objects


You can easily group by name to get what you need. Below is a quite general function to group any array of objects to a Map, by specified property. Then simply make it an array and you’re done

function group(arr, propertyToGroupBy) {
  return arr.reduce(function(a, b) {
    return a.set(b[propertyToGroupBy], (a.get(b[propertyToGroupBy]) || []).concat(b));
  }, new Map);
}

const map = group(arr, 'name');

console.log(Array.from(map));
<script>
  let arr = [{
      'name': '1',
      'val': '12'
    }, {
      'name': '4',
      'val': '52'
    },
    {
      'name': '11',
      'val': '15'
    },
    {
      'name': '4',
      'val': '33'
    }
  ];
</script>

solved Sort big array into smaller by value in objects