
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Filter an array containing objects based on another array containing objects in JavaScript
Suppose we have two arrays of objects like these −
const arr1 = [{id:'1',name:'A'},{id:'2',name:'B'},{id:'3',name:'C'},{id:'4',name:'D'}]; const arr2 = [{id:'1',name:'A',state:'healthy'},{id:'3',name:'C',state:'healthy'}];
We are required to write a JavaScript function that takes in two such arrays. Our function should return a new filtered version of the first array (arr1 in this case) that contains only those objects with a name property that are not contained in the second array (arr2 in this case) with the same name property.
Therefore, the output, in this case, should look like −
const output = [{id:'2',name:'B'},{id:'4',name:'D'}];
Example
The code for this will be −
const arr1 = [{id:'1',name:'A'},{id:'2',name:'B'},{id:'3',name:'C'},{id:'4',name:'D'}]; const arr2 = [{id:'1',name:'A',state:'healthy'},{id:'3',name:'C',state:'healthy'}]; const filterByReference = (arr1, arr2) => { let res = []; res = arr1.filter(el => { return !arr2.find(element => { return element.id === el.id; }); }); return res; } console.log(filterByReference(arr1, arr2));
Output
And the output in the console will be −
[ { id: '2', name: 'B' }, { id: '4', name: 'D' } ]
- Related Articles
- Creating an array of objects based on another array of objects JavaScript
- Filter JavaScript array of objects with another array
- Filter array based on another array in JavaScript
- How do we loop through array of arrays containing objects in JavaScript?
- How to sort an array of objects containing null elements in java?
- Sort nested array containing objects ascending and descending according to date in JavaScript
- Filter an object based on an array JavaScript
- Modify an array based on another array JavaScript
- Sort array based on presence of fields in objects JavaScript
- How to create an array of partial objects from another array in JavaScript?
- How to sort an array of objects based on the length of a nested array in JavaScript
- Sorting Array based on another array JavaScript
- Sort array based on another array in JavaScript
- JavaScript in filter an associative array with another array
- Filter array of objects by a specific property in JavaScript?

Advertisements