Trying to filter out object based on some logic below code is returning empty array any help will be appreciated trying to achieve following logic
1- If first Obj (firstFillIndicator=Y, acceptDigitalFirstFill=Y) and Second Object(firstFillIndicator = Y, acceptDigitalFirstFill=N). this object should be removed its falsy.
2- if first obj(firstFillIndicator=Y, acceptDigitalFirstFill=Y) and seond object (firstFillIndicator= N, acceptDigitalFirstFill=Y). this object should be removed its falsy.
3- if both objects have firstFillIndicator and acceptDigitalFirstFill have some values that would be truthy.
main.ts
function validateSingleOrder(data){
let isValid = false;
const filteredDrugs = data.filter((item) => {
isValid = isValidOrder(item);
if(isValid){
return true;
} else {
return false;
}
})
return filteredDrugs;
}
function isValidOrder(item){
item.rxInfos.reduce((a, c) => {
return (a.acceptDigitalFirstFill === "Y" && c.firstFillIndicator === "Y") || (a.firstFillIndicator === "N" && c.acceptDigitalFirstFill === "N")
});
}
console.log(validateSingleOrder(rxDetails));
data
const rxDetails = [
{
indexID: 1,
rxInfos: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
},
{
indexID: 2,
rxInfos: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "N",
acceptDigitalFirstFill: "Y",
rxNumber: "16021"
}
]
},
{
indexID: 3,
rxInfos: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "N",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
}
]
expected result
[{
indexID: 3
rxInfoss: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "N",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
},
];
isValidOrder()doesn't ever return a value, so would always evaluate tofalse.reducehere? You can but you should also be returning a value for the accumulator each time - you're not doing that. You're just comparing two objects at a time and...that's it.2, as you try to dereference properties offawhich will be a boolean value.