I am trying to merge all the items object from a JSON file into a single item object. The JSON file structure looks like this;
[ {"items":["product1","product2","product3"]}, {"items":["product4","product5","product6"]}, ]
What I want to achieve is to merge all the items into a single items object such as;
[ {"items":["product1","product2","product3,"product4","product5","product6"]}, ]
I have been trying concat, or spreading but couldn’t make either work. How can I achieve this or what is the best method to use in this case?
Advertisement
Answer
Use Array.reduce()
and the spread operator to push the items into a single object and array:
const arr = [ {"items":["product1","product2","product3"]}, {"items":["product4","product5","product6"]}, ] const res = arr.reduce((acc, cur) => { acc[0].items.push(...cur.items); return acc; }, [{'items': []}]); console.log(res);