Search code examples
javascriptmeteorlodash

how can i use this find array and match in array in javascript?


This is my data - how can I find itemId in the array.

let itemId=['001', '002', '003'] 
const data = [
  { id: 1, itemId: '001' },
  { id: 2, itemId: '002' },
  { id: 3, itemId: '003' },
];

This is my function in lodash but it does not work.

  _.find(data, ['itemId',{$in: itemId}])

Solution

  • Use _.intersectionWith() to get all items from data, which id appears in the itemId array:

    const itemId=['001', '003'];
    const data = [
      { id: 1, itemId: '001' },
      { id: 2, itemId: '002' },
      { id: 3, itemId: '003' },
    ];
    
    const result = _.intersectionWith(data, itemId, ({ itemId }, id) => itemId === id); 
    
    console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>