jQuery连接变量是否都具有值?

时间:2018-08-25 04:25:11

标签: javascript jquery concatenation zxcvbn

我真的希望这不是重复的,尽管肯定有可能,但我只是没有搜索正确的术语。

我基于password strength checker在自己的flyingcars version上工作。

我正在尝试找到一种方法来组合两个变量(仅当两个变量都存在时)。

这就是我所拥有的:

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);

因此希望可以避免使用多个if语句。

1 个答案:

答案 0 :(得分: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);