var a = [{id: 14679333, name: "Churchill Downs", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Gulfstream", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true"}]
var b = [{id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Charles Town", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Los Alamitos", eventStatusCode: "A", isActive: "true"}]
Code:
for(var i=0; i< b.length;i++){
if((b[i].typeName || b[i].name) != (a[i].typeName || a[i].name)){
var c= a.concat(b)
console.log("after concat",c)
}
}
I am trying to compare both arrays and merge into single array without duplicates but I am getting this output:
c= [{id: 14679333, name: "Churchill Downs", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Gulfstream", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Charles Town", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Los Alamitos", eventStatusCode: "A", isActive: "true"}]
Expected output:
c = [{id: 14679333, name: "Churchill Downs", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Gulfstream", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Charles Town", eventStatusCode: "A", isActive: "true"},
{id: 14679333, name: "Los Alamitos", eventStatusCode: "A", isActive: "true"}]
You could take a Set and look for same name and filter the array of all items.
var a = [{ id: 14679333, name: "Churchill Downs", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Gulfstream", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true" }],
b = [{ id: 14679333, name: "Santa Anita", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Charles Town", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Golden Gate Fields", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Remington Park", eventStatusCode: "A", isActive: "true" }, { id: 14679333, name: "Los Alamitos", eventStatusCode: "A", isActive: "true" }],
result = [...a, ...b]
.filter(
(s => ({ name }) => !s.has(name) && s.add(name))
(new Set)
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
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