Иногда лучше написать больше кода, чтобы лучше понять, что происходит.
Первое быстрое изменение заключается в расширении вашего if
контента, например:
Обратите внимание, что троичный не является обязательным Простой оператор ||
будет иметь тот же эффект.
PS : потому что я не задумывался о том, почему вы делаете то, что делаете, я использовал неправильное именование переменных. Если вы повторно используете следующее, измените их и добавьте комментарии о том, чего вы пытаетесь достичь.
const isA = [
'ALL',
'',
].includes(this.accountnumber.value) || ele.accountnumber === this.accountnumber.value;
const isB = [
'ALL',
'',
].includes(this.description.value) || ele.description === this.description.value;
const isC = [
'ALL',
'',
].includes(this.country.value) || ele.country === this.country.value;
const isD = !this.entryDate || this.entryDate === dateEntry;
const isE = !this.editedDate || this.editedDate === dateEdited;
if (isA && isB && isC && isD && isE) {
return true;
}
Расширение также делает еще более очевидным, что некоторый код дублируется.
function checkCond(key, obj, arr = [
'ALL',
'',
]) {
return arr.includes(this[key].value) || obj[key] === this[key].value;
}
const isA = checkCond('accountnumber', ele);
const isB = checkCond('description', ele);
const isB = checkCond('country', ele);
const isD = !this.entryDate || this.entryDate === dateEntry;
const isE = !this.editedDate || this.editedDate === dateEdited;
if (isA && isB && isC && isD && isE) {
return true;
}
Еще дальше:
function checkCond(key, obj, arr = [
'ALL',
'',
]) {
return arr.includes(this[key].value) || obj[key] === this[key].value;
}
const conditions = [
checkCond('accountnumber', ele),
checkCond('description', ele),
checkCond('country', ele),
!this.entryDate || this.entryDate === dateEntry,
!this.editedDate || this.editedDate === dateEdited,
];
if (conditions.every(x => x)) {
return true;
}