Попытка отфильтровать объект на основе некоторой логики c приведенный ниже код возвращает пустой массив, любая помощь будет оценена, если вы попытаетесь добиться следующей логики c
1 - Если первый Obj (firstFillIndicator = Y, acceptDigitalFirstFill = Y) и Второй объект (firstFillIndicator = Y, acceptDigitalFirstFill = N). этот объект должен быть удален как ложный.
2 - если первый объект obj (firstFillIndicator = Y, acceptDigitalFirstFill = Y) и объект seond (firstFillIndicator = N, acceptDigitalFirstFill = Y). этот объект должен быть удален как ложный.
3 - если оба объекта имеют firstFillIndicator и acceptDigitalFirstFill имеют некоторые значения, которые были бы правдивыми.
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"
}
]
}
]
ожидаемый результат
[{
indexID: 3
rxInfoss: [{
firstFillIndicator: "Y",
acceptDigitalFirstFill: "Y",
rxNumber: "1512"
},
{
firstFillIndicator: "N",
acceptDigitalFirstFill: "N",
rxNumber: "16021"
}
]
},
];