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}]
This might be the most compact code:
TotalEmployers.forEach(x => {
x.Checked = UpdatedEmployer.some(y => y.EmployerId === x.EmployerId);
});
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With