-2

I have object like this. I getting this object on backend with query and then transform with qs string library.

{ 
color: 'red,white',
size: 'xl', 
manufacturer: 'adidas,nike' 
}

I would like have array of object, what i need for prisma map filtering

  const filterList = [
    {filter: "color", value: "red"},
    {filter: "color", value: "white"}, 
    {filter: "size", value: "xl"},
    {filter: "manufacturer", value: "adidas"},
    {filter: "manufacturer", value: "nike"},
  ];

How can i this handle ? Thanks for a reply

Radas
  • 33
  • 1
  • 6

1 Answers1

-1

Like this?

function transform(filters) {
  return Object.entries(filters).reduce((acc, [filter, commaSeparatedValues]) => {
    commaSeparatedValues.split(",").forEach(value => {
      acc.push({
        filter,
        value
      })
    });
    return acc;
  }, [])
}

const sample = {
  color: "red,white",
  size: "xl",
  manufacturer: "adidas,nike",
};

const transformed = transform(sample);
console.log(transformed);
Cloudio
  • 11
  • 4