Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compare two lists and update value one list value to other angular5

I have two list of objects

List1: TotalEmployers-

 [{EmployerId: 1,Name:"Rick", Checked :false}, {EmployerId: 2,Name:"John", Checked :false},{EmployerId: 3,Name:"Maddy", Checked :false}]

List2: UpdatedEmployer

[{EmployerId: 1,Name:"Rick"},{EmployerId: 2,Name:"John"}]

How to update list1 checked value to true based on records in list2

Final output :

List1: TotalEmployers-

[{EmployerId: 1,Name:"Rick", Checked :true}, {EmployerId: 2,Name:"John", Checked :true},{EmployerId: 3,Name:"Maddy", Checked :false}]
like image 942
priya_21 Avatar asked Oct 24 '25 02:10

priya_21


2 Answers

This might be the most compact code:

TotalEmployers.forEach(x => {
   x.Checked = UpdatedEmployer.some(y => y.EmployerId === x.EmployerId);
});
like image 70
Guerric P Avatar answered Oct 26 '25 18:10

Guerric P


Try map operator:

TotalEmployers.map(employee=> {
   return employee.Checked = UpdatedEmployer.some(cobay => cobay.EmployerId=== employee.EmployerId);
});

Here is a snippet for your case :

TotalEmployers = [{EmployerId: 1,Name:"Rick", Checked :false}, {EmployerId: 2,Name:"John", Checked :false},{EmployerId: 3,Name:"Maddy", Checked :false}];

UpdatedEmployer = [{EmployerId: 1,Name:"Rick"},{EmployerId: 2,Name:"John"}];




TotalEmployers.map(employee=> {
   return employee.Checked = UpdatedEmployer.some(cobay => cobay.EmployerId=== employee.EmployerId);
});


console.log(TotalEmployers);
like image 24
SeleM Avatar answered Oct 26 '25 16:10

SeleM



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!