Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

170
Views
Compare 2 Arrays of Objects

I want to compare 2 Arrays of Objects to find the object or objects which is not matched. In the example below it should output {label: 'Addition', type: 'address', name: 'address_4', defaultValue: 'test'} as this Object is not matched.

const A = [{
    label: 'Street Name',
    type: 'address',
    name: 'address_1',
    defaultValue: 'test1'
  },
  {
    label: 'House Number',
    type: 'address',
    name: 'address_2',
    defaultValue: '1563l1'
  },
  {
    label: 'Addition',
    type: 'address',
    name: 'address_3',
    defaultValue: 'ABC684'
  }
]

const B = [{
    label: 'Street Name',
    type: 'address',
    name: 'address_1',
    defaultValue: 'test1'
  },
  {
    label: 'House Number',
    type: 'address',
    name: 'address_2',
    defaultValue: '1563l1'
  },
  {
    label: 'Addition',
    type: 'address',
    name: 'address_3',
    defaultValue: 'ABC684'
  },
  {
    label: 'Addition',
    type: 'address',
    name: 'address_4',
    defaultValue: 'test'
  }
]

const newSet = A;
const currentSet = B;

let difference = currentSet.filter((page1) => !newSet.find(page2 => page1.name === page2.name))

console.log(difference);

This does not work. It outputs an empty Array. What I'm doing wrong?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You might by comparing A with B which returns an empty array because there is no element in A which doesn't exist in B instead you should compare B with A.

Below code will return an empty array

const A = [
  {
    label: "Street Name",
    type: "address",
    name: "address_1",
    defaultValue: "test1",
  },
  {
    label: "House Number",
    type: "address",
    name: "address_2",
    defaultValue: "1563l1",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_3",
    defaultValue: "ABC684",
  },
];

const B = [
  {
    label: "Street Name",
    type: "address",
    name: "address_1",
    defaultValue: "test1",
  },
  {
    label: "House Number",
    type: "address",
    name: "address_2",
    defaultValue: "1563l1",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_3",
    defaultValue: "ABC684",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_4",
    defaultValue: "test",
  },
];

let difference = A.filter((page1) => {
  const result = B.find((page2) => page1.name === page2.name);
  return !result;
});

console.log(difference);

You should compare B with A as:

const A = [
  {
    label: "Street Name",
    type: "address",
    name: "address_1",
    defaultValue: "test1",
  },
  {
    label: "House Number",
    type: "address",
    name: "address_2",
    defaultValue: "1563l1",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_3",
    defaultValue: "ABC684",
  },
];

const B = [
  {
    label: "Street Name",
    type: "address",
    name: "address_1",
    defaultValue: "test1",
  },
  {
    label: "House Number",
    type: "address",
    name: "address_2",
    defaultValue: "1563l1",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_3",
    defaultValue: "ABC684",
  },
  {
    label: "Addition",
    type: "address",
    name: "address_4",
    defaultValue: "test",
  },
];

let difference = B.filter((page1) => {
  const result = A.find((page2) => page1.name === page2.name);
  return !result;
});

console.log(difference);

If there is a case where you want to get the difference between two array then you can do as:

const [small, large] = A.length < B.length ? [A, B] : [B, A];
let difference = large.filter((page1) => {
  const result = small.find((page2) => page1.name === page2.name);
  return !result;
});
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!