add default value for basis 'Default' if not available in second array when combined
var arrayOne = [{id: 1, name: 'A'},{id:2, name: 'B'},{id:3, name: 'C'},{id:4, name: 'D'},{id:5, name: 'E'}];
var arrayTwo = [{id: 1, basis: 'Online'},{id:3, basis: 'Paper'},{id:4, basis: 'Referrer'}];
One Result should be:
var combinedArray = [{id: 1, name: 'A', basis: 'Online'},{id:2, name: 'B', basis: 'Default'},{id:3, name: 'C', basis: 'Paper'},{id:4, name: 'D', basis: 'Referrer'},{id:5, name: 'E', basis: 'Default'}];
can we get other result of array which deletes name from fist array as below
var combinedArray2 = [{id: 1, basis: 'Online'},{id:2, basis: 'Default'},{id:3, basis: 'Paper'},{id:4, basis: 'Referrer'},{id:5, basis: 'Default'}];
I tried
var combinedArray = [];
arrayOne.forEach(objOne => {
arrayTwo.forEach(objTwo => {
if(objOne.id === ObjTwo.id){
combinedArray.push({...objOne,...objTwo});
}
});
});
Is there any easy way and faster way to get resulted array without iterating two times with improved performance