Javascript 数学淘汰赛
我是个新手,但我的头脑仍然在想,我想知道如何使用两个KO变量来做简单的数学(加法和乘法) 目前我有:Javascript 数学淘汰赛,javascript,jquery,knockout.js,knockout-2.0,Javascript,Jquery,Knockout.js,Knockout 2.0,我是个新手,但我的头脑仍然在想,我想知道如何使用两个KO变量来做简单的数学(加法和乘法) 目前我有: self.popInc1 = ko.observable('0.3'); self.popIncrease = ko.computed(function () { return self.popInc1() + " x " + self.population(); }); 当它返回并打印出来时,这非常好:0.3x54556239“ 但是我想把这两个变量相乘。我试过下列方法,但没有成功
self.popInc1 = ko.observable('0.3');
self.popIncrease = ko.computed(function () {
return self.popInc1() + " x " + self.population();
});
当它返回并打印出来时,这非常好:0.3x54556239“
但是我想把这两个变量相乘。我试过下列方法,但没有成功
self.popInc1 = ko.observable('0.3');
self.popIncrease = ko.computed(function () {
return Math.floor(self.popInc1() * self.population());
});
现在0.3是静态的,但最终将通过文本输入成为动态的。类似的东西怎么样
我修正了它,从数组中提取的原始值是字符串而不是数字。facepalm。如果我将人口定义为一个固定值,那么这是可行的,但是它是动态的,并且是从应用程序的前面定义的。数字是从数组中提取的,使用的数字取决于另一个选项。所以重申一下,如果我把self.population=ko.observable(123),它是有效的,如果我去掉123,我得到的NaNself.population必须是正确的,因为它在视图中打印出了正确的值NaN值是因为_self.userInput和_self.population未初始化。如果值未定义,则可以执行简单检查,然后返回0,否则执行计算。
<div data-bind="text: popIncrease"></div>
<input type="text" data-bind="value: userInput, valueUpdate: 'afterkeydown'" />
var ViewModel = function(){
var _self = this;
_self.userInput = ko.observable(0.3);
_self.population = ko.observable(54556239);
_self.popIncrease = ko.computed(function () {
return Math.floor(_self.userInput() * _self.population());
});
};
_self.population = ko.observable(0);