1

Hi I have an array and an object of arrays.

I want to merge this array with each array in the object and remove duplicates and push it into another object. The key in the new object should be the array name we are merging into.

I tried different ways, didnt work out.

Please advice.

const data = [{
    name: 'BMW',
    value: '25641'
  }, {
    name: 'Apple',
    value: '45876'
  },
  {
    name: 'Benz',
    value: '65784'
  },
  {
    name: 'Toyota',
    value: '254'
  }
]

const obj = {
  carsList: [{
    name: 'Ford',
    value: '47563'
  }, {
    name: 'Toyota',
    value: '254'
  }],
  pastriesList: [],
  fruitsList: [{
    name: 'Apple',
    value: '45876'
  }, {
    name: 'Pineapple',
    value: '84523'
  }]
}

const result = {};

_.forEach(obj, (value, key) => {
  this[key] = _.uniqWith(_.concat(data, value), _.isEqual);
  result[key] = this[key];
})

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

Expected Output:

{
carsList: [
  {
    "name": "BMW",
    "value": "25641"
  },
  {
    "name": "Apple",
    "value": "45876"
  },
  {
    "name": "Benz",
    "value": "65784"
  },
  {
    "name": "Toyota",
    "value": "254"
  },
  {
    "name": "Ford",
    "value": "47563"
  }
],
pastriesList:
[
  {
    "name": "BMW",
    "value": "25641"
  },
  {
    "name": "Apple",
    "value": "45876"
  },
  {
    "name": "Benz",
    "value": "65784"
  },
  {
    "name": "Toyota",
    "value": "254"
  }
],
fruitsList: 
[
  {
    "name": "BMW",
    "value": "25641"
  },
  {
    "name": "Apple",
    "value": "45876"
  },
  {
    "name": "Benz",
    "value": "65784"
  },
  {
    "name": "Toyota",
    "value": "254"
  },
  {
    "name": "Pineapple",
    "value": "84523"
  }
]

Any help is greatly appreciated.

arunmmanoharan
  • 2,535
  • 2
  • 29
  • 60
  • 3
    Goolging your title gives lots of answers... so please google things first before asking – vsync Nov 28 '18 at 16:25

0 Answers0