-2

我正在尝试使 Javascript 自动将库存中物品的价格汇总在一起,并显示库存中的物品总数。我必须使它适用于添加到库存中的任何数量。这就是我到目前为止所拥有的。谢谢

function inventory (a,b,c)
{
this.name = a;
this.price = b;
this.id = c;


var item1 = new item ("Pen", 2.50,"001");
var item2 = new item ('Pencil', 1.25, '002');
var item3 = new item ('Paper', 0.75, '003');
}
4

3 回答 3

1

我建议使用像 Underscore 或 Lodash 这样的库。它们提供了很多实用函数来操作数组、集合和对象。

具体来说,查看 reduce() 函数:http ://underscorejs.org/#reduce

因此,如果您有一系列物品,要获得它们的价格总和,您所要做的就是:

var sum = _.reduce(items, function(total, item){return total + item.price;}, 0);
于 2013-11-12T00:26:54.307 回答
0

我不是 100% 确定你想在这里完成什么,但如果你想将它绑定为对象属性,你可以做这样的事情......

var Inventory = {
    "items" : [
        { "name" : "paperclip", "price" : 25 },
        { "name" : "folder", "price" : 350 },
        { "name" : "desk", "price" : 2999 }
    ],
    "total" : function totalItems() {
        var total = 0;
        this.items.forEach(function(item) {
            total += item.price;
        });
        return total;
    }
};

console.log( Inventory.total() ); // 3275
console.log( Inventory.items.length ) // 3, # items
于 2013-11-12T00:29:01.247 回答
0
// By convention, class names should begin with an uppercase letter
function Item (a,b,c) {
    this.name = a;
    this.price = b;
    this.id = c;
}

function getTotal() {
    var total = 0;
    // Loop over the inventory array and tally up the total cost
    for (var i = 0; i < inventory.length; i ++) {
        total += inventory[i].price;
    }
    return total;
}

// We can store our item instances on an array
var inventory = [
    new Item ("Pen", 2.50,"001"),
    new Item ('Pencil', 1.25, '002'),
    new Item ('Paper', 0.75, '003')
];

console.log('Total is:', getTotal());
于 2013-11-12T00:23:24.860 回答