Как разместить объект conditions вне функции но чтобы код отрабатывал так же
const passes = [ 'abcdj', 'asfalseiruqwo', 'bhhkkbbjjjb' ];
//conditions = {...}
function conditionValidate(conditionProp) {
const validator = () => passes.map( pass => pass.split('').filter( el => el === conditionProp ? el : false).length);
return validator().filter( el => {
const conditions = { 'a': ( el > 0 && el < 5 ), 'z': ( el > 1 && el < 5), 'b': ( el > 2 && el < 7)};
if (conditions[conditionProp]) return el;
}).length;
}
console.log(conditionValidate('a'), conditionValidate('z'), conditionValidate('b'));
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Если можно изменить структуру conditions, тогда возможен такой вариант (немного переформатировал остальной код, чтобы было меньше длинных строк и горизонтальной прокрутки):
const passes = [ 'abcdj', 'asfalseiruqwo', 'bhhkkbbjjjb' ];
const conditions = {
'a': el => ( el > 0 && el < 5 ),
'z': el => ( el > 1 && el < 5),
'b': el => ( el > 2 && el < 7),
};
function conditionValidate(conditionProp) {
const validator = () => passes
.map(
pass => pass
.split('')
.filter( el => el === conditionProp ? el : false)
.length
);
return validator().filter( el => {
if (conditions[conditionProp](el)) return el;
}).length;
}
console.log(
conditionValidate('a'),
conditionValidate('z'),
conditionValidate('b')
);
Но вообще код кажется довольно таинственным. Лучше не привыкать к такой загадочной мистике)