0

I have two arrays of objects and i would like to merge it based on there position. Below is the example and expected result:

let patientLocation = [
    [{
        "value": "CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }],
    [{
        "value": "CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }]
];


let patientsNames = [
    [{
        "value": "LAST_CARD, FIRST_CARD",
        "label": "LAST_CARD, FIRST_CARD (12345677)",
        "filterType": "name"
    }],
    [{
        "value": "REACT_CARD, FIRST_CARD",
        "label": "REACT_CARD, FIRST_CARD (12345678)",
        "filterType": "name"
    }]
];

Expected Result:

result = [
    [{
        "value": "LAST_CARD, FIRST_CARD",
        "label": "LAST_CARD, FIRST_CARD (12345677)",
        "filterType": "name"
    }, {
        "value": "CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }],
    [{
        "value": "REACT_CARD, FIRST_CARD",
        "label": "REACT_CARD, FIRST_CARD (12345678)",
        "filterType": "name"
    }, {
        "value": "CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }]
];

I have tried this using map but not getting desired result.

result = patientLocation.map(function (e, i) {
            return [e, patientsNames[i]];
          });
2
  • So what you want is [A, B] + [C, D] => [[A, C], [B, D]]? Commented Jun 17, 2019 at 15:30
  • yes. you got that right. Commented Jun 17, 2019 at 15:41

1 Answer 1

2

You don't need lodash for a problem as simple as this one. Use map with the spread operator like this:

let patientLocation = [
    [{
        "value": "CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }],
    [{
        "value": "CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "label": "Team: CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM",
        "filterType": "team"
    }]
];


let patientsNames = [
    [{
        "value": "LAST_CARD, FIRST_CARD",
        "label": "LAST_CARD, FIRST_CARD (12345677)",
        "filterType": "name"
    }],
    [{
        "value": "REACT_CARD, FIRST_CARD",
        "label": "REACT_CARD, FIRST_CARD (12345678)",
        "filterType": "name"
    }]
];

let arr = patientsNames.map((obj, i) => [...obj, ...patientLocation[i]])

console.log(arr)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.