I am trying to find element in target array and update in the source array.
let sourceArray = [
{
"userId": "123",
"applicationId": "abc",
"selections": [
{
"applicationId": 70930,
"creationDate": "2021-01-28",
"responseStatus": "PENDING"
}
]
}
]
let array2 = [
{
"applicationId": 70930,
"code": "TEST CODE",
"creationDate": "2021-01-28",
"submissionDate": "2021-01-29",
"status": "SUBMITTED",
"outcomeStatus": "PENDING",
"responseStatus": "PENDING"
}
]
My expected outcome is selections to get updated in source array with matching elements from array2 based on applicationId
[
{
"userId": "123",
"applicationId": "abc",
"selections": [
{
"applicationId": 70930,
"code": "TEST CODE",
"creationDate": "2021-01-28",
"submissionDate": "2021-01-29",
"status": "SUBMITTED",
"outcomeStatus": "PENDING",
"responseStatus": "PENDING"
}
]
}
]
I tried updating the array using code below
const newArray = sourceArray.map(item => {
let item2 = array2.find(i2 => item.selections.some(id => i2.applicationId === id.applicationId));
return item2 ? { ...item, ...item2 } : item;
});
array2hascreationDateequal to2021-02-01, will it override what's insourceArray?