exhtml
5/24/2019 - 12:53 PM

Array reduce object properties to unique values

Tenemos un array de objetos y queremos obtener los valores unicos de una propiedad concreta

reduceToUniqueValues: function(field, separator) {
  return this.offers.map(function(item) {
    return item[field].split(separator); // obtenemos arrays con las opciones que nos llegan en ese campo para cada uno de los objetos
  }).reduce(function(prev, curr) {
    return prev.concat(curr); // hacemos 'flatten', mergeamos todos los arrays en uno solo
  }, []).filter(function(value, index, self) {
    return self.indexOf(value) === index && value.length; // eliminamos valores repetidos y vacíos
  });
}