jQuery сцепить переменные, если оба имеют значение?
Я действительно надеюсь, что это не дубликат, хотя, конечно, возможно, и я просто не ищу правильные термины.
Я работаю над своей собственной проверкой надежности пароля на основе версии flycars.
И я пытаюсь найти способ объединить две переменные (только если обе существуют).
Вот что у меня есть:
var thisVal = $('.password_input').val(),
thisStrength = zxcvbn(thisVal),
thisMeter = $('.password_strength_meter'),
thisLabel = $('.password-text'),
thisSuggestion = $('.password-text-suggest');
thisSuggestion.text(thisStrength.feedback.warning + ". " thisStrength.feedback.suggestions);
Если
Будет ли лучший способ сделать несколько операторов if? Или есть какой-то способ вставить его в раздел.text()?
Возможно, я подумываю о расширении этого вопроса, включая время, необходимое для взлома:
thisSuggestion.text(thisStrength.feedback.warning + ". This password could be cracked in: " + thisStrength.crack_times_display['online_no_throttling_10_per_second'] + ". " + thisStrength.feedback.suggestions);
так что, надеюсь, можно избежать нескольких утверждений.
1 ответ
Быстрый и простой способ сделать это - добавить все переменные, которые могут содержать строки, в массив. Затем вы можете отфильтровать пустые или ложные значения и объединить оставшиеся значения с выбранным разделителем.
const a = 'This will be there',
b = '',
c = null,
d = 'So will this';
let result = [a, b, c, d].filter(x => x).join('. ') + '.';
console.log(result);