Ionic 离子角js显示NAN中循环的总和

lnvxswe2  于 2022-12-08  发布在  Ionic
关注(0)|答案(1)|浏览(112)

因此,当我在输入框中插入值时,我试图计算循环的总和,但我的总和是NaN,不确定我哪里做错了,有人能帮助我吗?
下面是我在ts文件中的代码:

days: number[] = []

 

     ngOnInit(): void {
        for(let i = 0; i < 31; i++) {
          this.days.push(i);
        } 
      }
    
    
      ionViewDidEnter() {  
        this.crud.getAllInfo();
      }
    
      calAmount(){
        let sum=0;
        for(let d of this.days){
        sum= sum+this.amount
        }
          return sum;
      }
    
    and here is my html file
    
        <div *ngFor="let day of days; let i = index">
           <ion-item>
          <ion-thumbnail slot="start">
            <img src="assets/icon/document.png">
          </ion-thumbnail>
            <ion-label position="floating" >Day #{{day}}</ion-label>
            <br>
            <input [placeholder]="day" [(ngModel)]="day.amount">
          </ion-item>
        
        </div>
        
        <p>Total Amount:{{calAmount()}}</p>
6pp0gazn

6pp0gazn1#

您的calAmount函数中似乎有一个小错误。

calAmount() {
  let sum = 0;

  for (let d of this.days) {
    sum = sum + d.amount || 0; // <-- Note `d.amount` instead of `this.amount`
  }

  return sum;
}

下面是一个更快的方法:

calAmount() {
  return this.days.reduce((acc, curr) => acc + curr.amount || 0, 0);
}

还要注意|| 0部分。如果数字来自输入,那么当删除输入的内容时,可能会收到一个undefined/null值,因此最好向0添加一个回退,以修复可能的运行时错误。

相关问题