现在,我有以下JSON文档:
[
{
"price":"1.0",
"shares":13
},
{
"price":"2.0",
"shares":5
},
{
"price":"3.0",
"shares":24
}
]
如果有人要20股,我想返回20股的最低价格。在这种情况下:
13股价格为$ 1($ 13)
5股,每股2美元(10美元)
2股,每股价格3美元(6美元)
总费用为$ 29
我必须执行的特定剔除代码从先前定义的(并正在工作)this.wantedShares()绑定中获取20股。
码:
this.totalCost = ko.computed(function(){
var wantedShares = this.wantedShares();
var shareCounter = 0.00;
var counter = 0;
var totalPrice = 0.00;
$.getJSON("sell.json", function(json){
$.each(json, function() {
if(shareCounter <= wantedShares){
shareCounter = shareCounter + json[counter].shares;
totalPrice = totalPrice + (json[counter].price * json[counter].shares);
counter++;
}
});
});
return totalPrice;
}, this);
该代码不起作用,无论发生什么情况,都根本不更新totalPrice-仍为0。有什么想法吗?
最佳答案
AJAX是异步的,因此您的返回将在ajax完成之前触发
关于javascript - 使用KnockoutJS在Javascript和JQuery中遍历JSON文档数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9934363/