Reputation: 47
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
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
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
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
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