我正在制作一个简单的计算公式来计算百分比。但我得到了一个错误First argument contains NaN in property 'percent.percentKey.percentMale
。我正在将Angular和Typescript与Angularfire一起使用来将数据存储到数据库中。我在一个类中定义了属性。
//app.ts
export class App {
$key: string;
gender: string;
male: number = 0;
female: number = 0;
percentMale: number = 0;
percentFemale: number = 0;
}
//app.service.ts
insertdata(data: App) {
this.dataList.push({
gender: data.gender,
});
if (data.gender == 'Male') {
//this.male ++;
data.male = data.male++
} else if (data.gender == 'Female') {
//this.female ++;
data.female = data.female++
}
data.percentMale = data.male / (data.male + data.female) * 100
console.log('male', data.male + '%');
data.percentFemale = data.female / (data.male + data.female) * 100
console.log('female', data.female + '%');
console.log('1', data.percentMale); //it returns NaN
console.log('2', data.percentFemale); //it returns NaN
this.percentList.update("percentKey", {
percentMale: data.percentMale,
percentFemale: data.percentFemale
})
}
我已经在服务中导入了该类,并在insertdata
之类的component.ts中调用了this.AppService.insertpertanyaan(this.AppService.selectedpertanyaan);
函数。
有人可以帮帮我吗?如果需要更多代码段,请告诉我。谢谢。
答案 0 :(得分:1)
这些行存在问题:
data.male = data.male++;
data.female = data.female++;
他们应该是:
data.male++;
data.female++;
使用后缀增量运算符x++
时,x的值会递增,但表达式会返回x的先前值。当你这样做
x = x++;
首先递增x,然后将其先前的值赋给x。结果,x恢复到原始值。