现在,我有以下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/

10-10 18:40