Reputation: 443
I have two arrays and i need to check if array element contains substring of another array element using lodash. Below is a example for that.
let array1 = ['CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM\r\r\nCARDIOMYOPATHY CONSULT',
CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM\r\r\PALLIATIVE CARE HEARTPAL CONSULT\r\r\PSYCHIATRY CONSULT A\r\r\nCARDIOMYOPATHY CONSULT'];
let array2 = [
'CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B1 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B2 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY B3 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B3 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY CHF INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM'];
So here i want to check if element "CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM" from array2 is present in any of the element of the array1, and if it is present then we want to store it in new array.
currently i have done something like this to check one string.
_.some(patientLocations, (el) => _.includes('CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM\r\r\nCARDIOMYOPATHY CONSULT', el));
Upvotes: 1
Views: 509
Reputation: 677
Not sure about lodash, but this should do it in pure JavaScript
array2.filter(patientLocation => !!array1.find(element => element.includes(patientLocation)))
Upvotes: 1
Reputation: 849
Following is a solution for you (didn't use lodash but you're welcome to replace the regular functions with lodash - the result will be the same):
let array1 = ['CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM\r\r\nCARDIOMYOPATHY CONSULT',
'CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM\r\r\PALLIATIVE CARE HEARTPAL CONSULT\r\r\PSYCHIATRY CONSULT A\r\r\nCARDIOMYOPATHY CONSULT'];
let array2 = [
'CARDIOLOGY B1 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B1 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY B2 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B2 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY B3 INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY B3 INTERN2 ADMIT PRIMARY TEAM',
'CARDIOLOGY CHF INTERN1 ADMIT PRIMARY TEAM',
'CARDIOLOGY CHF INTERN2 ADMIT PRIMARY TEAM'];
array2.forEach(subStr => {
const found = array1.some(array1Value => array1Value.indexOf(subStr) > -1);
if (found) {
console.log(`"${subStr}" was found in array1`)
} else {
console.log(`"${subStr}" was NOT found in array1`)
}
});
Upvotes: 1