Open In App

JavaScript – Match Values from Another Array and Assign to Object of Arrays

Last Updated : 15 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Here are the different methods to match values from another array and assign to object of arrays in JavaScript

1. Using forEach() and push()

In this method, we will be using the forEach() and push() methods of the array to get the same value from another array and assign it to the object of arrays.

JavaScript
//Driver Code Starts{
let a1 = [1, 2, 3, 4, 5, 77, 876, 453];
let a2 = [1, 2, 45, 4, 231, 453];
let res = [];

//Driver Code Ends }

a1.forEach(val =>
	a2.includes(val) && res.push(val));
console.log(res);


Output
[ 1, 2, 4, 453 ]

In this example

  • The code compares two arrays and finds common elements.
  • It uses forEach to iterate through a1, checks if each value exists in a2 using includes, and adds the common values to the res array.

2. Using filter() and push()

In this method, we will use the filter(), push(), and includes() of array to get the same value from another array and assign it to the object of arrays.

JavaScript
//Driver Code Starts{
let a1 = [1, 2, 3, 4, 5, 77, 876, 453];
let a2 = [1, 2, 45, 4, 231, 453];

//Driver Code Ends }

let res = a1.filter(
	val => a2.includes(val));
console.log(res);


Output
[ 1, 2, 4, 453 ]

In this example

  • The code finds common elements between two arrays (a1 and a2) using the filter method.
  • It filters a1 by checking if each element exists in a2 using includes, and stores the result in res.

3. Using map() with find()

This method combines Array.prototype.map and Array.prototype.find for a cleaner and more functional approach.

JavaScript
//Driver Code Starts{
const users = [{ id: 1, name: "Alia" }, { id: 2, name: "Riya" }];
const ages = [{ id: 1, age: 25 }, { id: 2, age: 30 }];

//Driver Code Ends }

const user = users.map(user => {
	const data = ages.find(age => age.id === user.id);
	return { ...user, age: data?.age };
});

//Driver Code Starts{

console.log(user);
//Driver Code Ends }

Output
[ { id: 1, name: 'Alia', age: 25 }, { id: 2, name: 'Riya', age: 30 } ]

In this example

  • The code merges two arrays (users and ages) by matching the id property, using map and find to add the age property from ages to each user object.

4. Using reduce() for a Lookup Table

For large datasets, using the reduce() method to build a lookup table can significantly improve performance by streamlining the key-matching process.

JavaScript
//Driver Code Starts{
const users = [{ id: 1, name: "Alia" }, { id: 2, name: "Bobby" }];
const ages = [{ id: 1, age: 25 }, { id: 2, age: 30 }];

//Driver Code Ends }

const age = ages.reduce((acc, age) => {
	acc[age.id] = age.age;
	return acc;
}, {});

users.forEach(user => {
	user.age = age[user.id];
});

//Driver Code Starts{

console.log(users);
//Driver Code Ends }

Output
[
  { id: 1, name: 'Alia', age: 25 },
  { id: 2, name: 'Bobby', age: 30 },
  { id: 3, name: 'Charu', age: 35 }
]

In this example

  • The ages array is transformed into an object mapping id to age.
  • The forEach loop adds the corresponding age to each user based on their id.
  • The users array is updated with the age property for each user.

5. Using Object.fromEntries() for Optimized Mapping

For a concise and modern approach, convert the ages array into an object map using Object.fromEntries.

JavaScript
//Driver Code Starts{
const users = [{ id: 1, name: "Alia" }, { id: 2, name: "Jiya" }];
const ages = [{ id: 1, age: 25 }, { id: 2, age: 30 }];

//Driver Code Ends }

const age = Object.fromEntries(ages.map(age =>
	[age.id, age.age]));
const user = users.map(user => ({
	...user,
	age: ageMap[user.id],
}));

//Driver Code Starts{

console.log(user);
//Driver Code Ends }

In this example

  • The ages array is transformed into an object ageMap that maps id to age using Object.fromEntries().
  • The users array is updated by adding an age property from ageMap based on each user’s id, resulting in the user array with both name and age properties.


Next Article

Similar Reads