Prasanna watson
Prasanna watson

Reputation: 47

how to merge two array of object in following format using javascript

array1 = [{
    questionId: "5e52b55330bb2cee102b9a39",
    note: "Name",
    prefillValue: "prasanna"
},

{
    questionId: "5e52b56b30bb2cee102b9a3f",
    note: "Mobile Number",
    prefillValue: null
},
{
    questionId: "5e52b58230bb2cee102b9a42",
    note: "Agent Email",
    prefillValue: null
},
{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: null
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: null
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: null
}
]


array2 = [{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: "[email protected]"
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: "34"
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: "Chennai"
}
]

Expected output:

array3 = [{
        questionId: "5e52b55330bb2cee102b9a39",
        note: "Name",
        prefillValue: "prasanna"
    },

    {
        questionId: "5e52b56b30bb2cee102b9a3f",
        note: "Mobile Number",
        prefillValue: null
    }, {
        questionId: "5e52b58230bb2cee102b9a42",
        note: "Agent Email",
        prefillValue: null
    }, {
        questionId: "5e52b55e30bb2cee102b9a3c",
        note: "Email",
        prefillValue: null
    }, {
        questionId: "5e52b55e30bb2cee102b9a3c",
        note: "Email",
        prefillValue: "[email protected]"
    }, {
        questionId: "5e52c39730bb2cee102b9a47",
        note: "Agent ID",
        prefillValue: "34"
    },
    {
        questionId: "5e54dbdd30bb2c6018f488ca",
        note: "Location",
        prefillValue: "Chennai"
    }
]

Upvotes: 1

Views: 121

Answers (4)

Mr Khan
Mr Khan

Reputation: 2292

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

You can remove duplicate keys in this way.

let array1 = [{
    questionId: "5e52b55330bb2cee102b9a39",
    note: "Name",
    prefillValue: "prasanna"
},

{
    questionId: "5e52b56b30bb2cee102b9a3f",
    note: "Mobile Number",
    prefillValue: null
},
{
    questionId: "5e52b58230bb2cee102b9a42",
    note: "Agent Email",
    prefillValue: null
},
{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: null
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: null
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: null
}
]

var uniq = {}
var arrFiltered = arrays1.filter(obj => !uniq[obj.questionId] && (uniq[obj.questionId] = true));
console.log('Filtered Array:', arrFiltered)

reference can be found here

Upvotes: 0

Ashish Gondaliya
Ashish Gondaliya

Reputation: 318

let array1 = [{
    questionId: "5e52b55330bb2cee102b9a39",
    note: "Name",
    prefillValue: "prasanna"
},

{
    questionId: "5e52b56b30bb2cee102b9a3f",
    note: "Mobile Number",
    prefillValue: null
},
{
    questionId: "5e52b58230bb2cee102b9a42",
    note: "Agent Email",
    prefillValue: null
},
{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: null
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: null
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: null
}
]


let array2 = [{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: "[email protected]"
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: "34"
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: "Chennai"
}
]


let array3 = array1.concat(...array2);

console.log(array3)

Upvotes: 0

Addis
Addis

Reputation: 2530

You can use Object.assign to copy properties from one object to another

const array1 = [{
      questionId: "5e52b55330bb2cee102b9a39",
      note: "Name",
      prefillValue: "prasanna"
  },

  {
      questionId: "5e52b56b30bb2cee102b9a3f",
      note: "Mobile Number",
      prefillValue: null
  },
  {
      questionId: "5e52b58230bb2cee102b9a42",
      note: "Agent Email",
      prefillValue: null
  },
  {
      questionId: "5e52b55e30bb2cee102b9a3c",
      note: "Email",
      prefillValue: null
  },
  {
      questionId: "5e52c39730bb2cee102b9a47",
      note: "Agent ID",
      prefillValue: null
  },
  {
      questionId: "5e54dbdd30bb2c6018f488ca",
      note: "Location",
      prefillValue: null
  }
]


const array2 = [{
      questionId: "5e52b55e30bb2cee102b9a3c",
      note: "Email",
      prefillValue: "[email protected]"
  },
  {
      questionId: "5e52c39730bb2cee102b9a47",
      note: "Agent ID",
      prefillValue: "34"
  },
  {
      questionId: "5e54dbdd30bb2c6018f488ca",
      note: "Location",
      prefillValue: "Chennai"
  }
]


const array3 = array1.map(o => Object.assign(o, array2.find(a => a.questionId === o.questionId)));

console.log(array3)

Upvotes: 1

Yanjan. Kaf.
Yanjan. Kaf.

Reputation: 1755

let array1 = [{
    questionId: "5e52b55330bb2cee102b9a39",
    note: "Name",
    prefillValue: "prasanna"
},

{
    questionId: "5e52b56b30bb2cee102b9a3f",
    note: "Mobile Number",
    prefillValue: null
},
{
    questionId: "5e52b58230bb2cee102b9a42",
    note: "Agent Email",
    prefillValue: null
},
{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: null
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: null
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: null
}
]


let array2 = [{
    questionId: "5e52b55e30bb2cee102b9a3c",
    note: "Email",
    prefillValue: "[email protected]"
},
{
    questionId: "5e52c39730bb2cee102b9a47",
    note: "Agent ID",
    prefillValue: "34"
},
{
    questionId: "5e54dbdd30bb2c6018f488ca",
    note: "Location",
    prefillValue: "Chennai"
}
]

let array3 = [...array1,...array2];

console.log(array3)

Upvotes: 4

Related Questions