Lodash Playground

Play with lodash functions

by dingen2010

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.5.1/lodash.min.js"></script>

JavaScript

let list1 = {
  "een": {
    "id": "100",
    "title": "Entertainment and stuff"
  },
  "twee": {
    "id": "107",
    "title": "Sport for everyone"
  },
  "drie": {
    "id": "108",
    "title": "Eating is good"
  }
}

let list2 = [
  {
    "name": "Entertainment",
    "id": "100",
    "price": 2600,
    "gifted": false
  },
  {
    "name": "Sport",
    "id": "107",
    "price": 2500,
    "gifted": false
  }
]

let o1 = _.keyBy(_.values(list1), 'id');
let o2 = _.keyBy(list2, 'id');

let matchingIds = _.intersection(_.keys(o1), _.keys(o2));

let result = _.chain(o1)
    .pick(matchingIds)
    .merge(_.pick(o2,matchingIds))
    .values()
    .value()