Search code examples
arraysloopsfilterconditional-statementsarray-filter

How do I filter multiple values in array


const arr1 = [{id:2},{id:3},{id:4},{id:5}] const arr2 = [{Id:2},{id:4}]

I want to filter arr1 that contains arr2.id


Solution

  • function will return elements arr1 not contained arr2

    const arr1 = [{id:2},{id:3},{id:4},{id:5}] 
    const arr2 = [{id:2},{id:4}]
    
    const arrayFilter = (arr1, arr2) => {
      
      return arr1.filter( (item) => {
        return ((JSON.stringify(arr2)).indexOf(JSON.stringify(item)) <= 0) ? item : false
       })
    }
    
    console.log(arrayFilter(arr1,arr2))