简体   繁体   中英

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: "skk@gmail.com"
},
{
    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: "skk@gmail.com"
    }, {
        questionId: "5e52c39730bb2cee102b9a47",
        note: "Agent ID",
        prefillValue: "34"
    },
    {
        questionId: "5e54dbdd30bb2c6018f488ca",
        note: "Location",
        prefillValue: "Chennai"
    }
]

 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: "skk@gmail.com" }, { questionId: "5e52c39730bb2cee102b9a47", note: "Agent ID", prefillValue: "34" }, { questionId: "5e54dbdd30bb2c6018f488ca", note: "Location", prefillValue: "Chennai" } ] let array3 = [...array1,...array2]; console.log(array3)

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: "skk@gmail.com" }, { 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)

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

 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: "skk@gmail.com" }, { questionId: "5e52c39730bb2cee102b9a47", note: "Agent ID", prefillValue: "34" }, { questionId: "5e54dbdd30bb2c6018f488ca", note: "Location", prefillValue: "Chennai" } ] let array3 = array1.concat(...array2); console.log(array3)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM