Math.Random不能正常工作打字稿
问题描述:
简单的问题,但我找不到答案,我对数学很不好。问题是我有这个公式来产生一个随机数。Math.Random不能正常工作打字稿
numRandomed: any;
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
public randomize(min, max) {
console.log("minimo: " + min);
console.log("maximo: " + max);
this.numRandomed = Math.floor(Math.random()*(max-min+1)+min);
console.log(this.numRandomed);
}
和视图
<ion-list>
<ion-item>
<ion-label floating>Min Number</ion-label>
<ion-input type="number" [(ngModel)]='minNumber'></ion-input>
</ion-item>
<ion-item>
<ion-label floating>Max Number</ion-label>
<ion-input type="number" [(ngModel)]='maxNumber'></ion-input>
</ion-item>
</ion-list>
<button ion-button (click)='randomize(minNumber,maxNumber)'>Randomize!</button>
<p>{{ numRandomed }}</p>
但随机数总是比最小数量少,不在此范围内,我不知道为什么......
任何线索??谢谢!!
答
我在node.js中试过这段代码,它运行良好。
此代码:
function randomize(min, max) {
console.log("minimo: " + min);
console.log("maximo: " + max);
let x;
console.log(Math.floor(Math.random()*(max-min+1)+min));
console.log(x = Math.floor(Math.random()*(max-min+1)+min));
}
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
randomize(10,20)
是具有这种输出
minimo: 10
maximo: 20
20
11
minimo: 10
maximo: 20
17
13
minimo: 10
maximo: 20
18
20
minimo: 10
maximo: 20
13
11
minimo: 10
maximo: 20
18
10
minimo: 10
maximo: 20
12
16
我建议,那您覆盖在随机化方法的某些点或返回值numRandomed不使用或这样的事情。
+0
将我的代码添加到主帖子中。 – Mystearica
为什么当你不使用randomize类/对象并立即返回该字段的值时,为'randomize'原型添加字段'numRandomed'? – LutzL
我在视图中使用了该变量,{{numRandomed}} 而我通过视图中的按钮调用函数。 – Mystearica
这是一种封闭,你确定你使用正确的封闭形式吗?是不是有必要在外面定义'let me = this;'然后分配给'me.numRandomed'? – LutzL