Javascript 如何在显示金额时隐藏空值但显示数字0?

Javascript 如何在显示金额时隐藏空值但显示数字0?,javascript,angular,typescript,Javascript,Angular,Typescript,我编写了以下函数: /** * Transform values * @param val number * @return val.toLocalString() */ public transformAmount(val: number) { if (val === null || !val) { return ''; } else { return val.toLocaleString('de-DE', { maxim

我编写了以下函数:

  /**
   * Transform values
   * @param val number
   * @return val.toLocalString()
   */
  public transformAmount(val: number) {
    if (val === null || !val) {
      return '';
    } else {
      return val.toLocaleString('de-DE', { maximumFractionDigits: 1, minimumFractionDigits: 1 });
    }
  }

在函数中,我用一个小数位显示金额,零值留空。我必须在代码中更改什么才能同时显示数字0?

0被视为false,因此它将通过代码中的第一个条件,从而返回空字符串值。 你必须写这样的东西

public transformAmount(val: number) {
    if (val === null || val === undefined) {
      return '';
    } else {
      return val.toLocaleString('de-DE', { maximumFractionDigits: 1, minimumFractionDigits: 1 });
    }
  }
您可以使用和运算符。如果
val
为null或未定义,
?。
将返回未定义,
将返回
'


另一种方法是,我看到
val
应该是一个数字(包括0),因此您可以检查
val
是否是数字:

  /**
   * Transform values
   * @param val number
   * @return val.toLocalString()
   */
  public transformAmount(val: number) {
    if (isNaN(parseInt(val))) { // returns true if val is not a number
      return '';
    } else {
      return val.toLocaleString('de-DE', { maximumFractionDigits: 1, minimumFractionDigits: 1 });
    }
  }

因为0被视为错误,所以必须为0添加显式大小写。添加
&&val!=0
到您的if子句应该完成一个示例将非常有用
  /**
   * Transform values
   * @param val number
   * @return val.toLocalString()
   */
  public transformAmount(val: number) {
    if (isNaN(parseInt(val))) { // returns true if val is not a number
      return '';
    } else {
      return val.toLocaleString('de-DE', { maximumFractionDigits: 1, minimumFractionDigits: 1 });
    }
  }