Например, a имеют два условия оператора:
Во-первых, что-то похожее на
const condition1 = value === '' && value1 === '' && value2 === '' && valu3e === '' && value4 === '' && value5 === ''
и вторые условия более простые, например
const condition2 = value === 'error'
и мой, если оператор имеет два, как это:
if (condition1 || condition2) {
....
}
Есть ли способ сделать это лучше, чем фактическая реализация?
Извлечение каждого результата логического выражения в переменную кажется довольно хорошим. Это обычное решение для очень больших логических выражений. Есть ли проблема с его использованием?
Estou tentando extrair isso de cada logica, mas fico errado em algo porque são mais de 6 expressões. Mas agora está tudo bem, obrigado pessoal.
Первое условие:
const value = '',
value1 = '',
value2 = '',
value3 = '',
value4 = '',
value5 = '';
const condition1 = [
value,
value1,
value2,
value3,
value4,
value5,
].every(x => x === '');
console.info(`Condition1 : ${condition1}`);
Если бы вы могли преобразовать значения в массив, было бы лучше.
const values = [
'',
'',
'',
'',
'',
'',
];
const condition1 = values.every(x => x === '');
console.info(`Condition1 : ${condition1}`);
Всего
const value = '',
value1 = '',
value2 = '',
value3 = '',
value4 = '',
value5 = '';
if ([
value,
value1,
value2,
value3,
value4,
value5,
].every(x => x === '') || value === 'error') {
console.info(`Condition : true`);
} else {
console.info(`Condition : false`);
}
почему бы не просто:
if ( (value === '' && value1 === '' && value2 === '' && valu3e === '')
|| value === 'error'
) {
/// ...
}
?
Я использую это, но условие больше, чем в моем вопросе, потому что это я пытаюсь ее реорганизовать. Но спасибо.
У вас действительно есть 6 пронумерованных
value
переменных? Вместо этого используйте массив.