我目前正在使用backbone构建一个简单的库存管理应用程序。我的数据库中有一个表,其中包含型号和数量;这是该对象的strigify版本:
var invt =
[{
"id":1,
“模型”:“佳能SX230",
"qty":10,
"price":"150.50“
},
{
"id":2,
“model”:“佳能叛军T3i",
"qty":25,
"price":"450.50",
},
{
"id":3,
“model”:“佳能叛军T2",
"qty":10,
"price":"250.00“
},
{
"id":4,
“model”:“佳能叛军T2i",
"qty":15,
"price":"275.00“
},
{
"id":5,
“模型”:“佳能SX230",
"qty":5,
"price":"125.00“
}]
如何根据模型进行过滤以求和数量。创建一个具有相似模型的新对象的总数量。
从本质上讲,结果是:
[{
"id":1,
“模型”:“佳能SX230",
"qty":15,
"price":"275.00“
},
{
"id":2,
“model”:“佳能叛军T3i",
"qty":25,
"price":"450.50“
}]
等等。
我一直在尝试使用以下循环:
var sum = {};
for (var i = 0; i < invt.length; i++) {
var record = invt[i];
sum.model = record.model + (sum.model);
};发布于 2012-12-27 03:04:12
因为您只使用了与JS相关的标记,所以我猜您想要在客户端执行此操作。
你可以这样做:
var records = [
{
id: 1,
model: "A",
quantity: 6
}, {
id: 1,
model: "A",
quantity: 4
}, {
id: 1,
model: "B",
quantity: 3
}, {
id: 1,
model: "B",
quantity: 2
}
];
var sum = {};
for(var i = 0; i < records.length; i++) {
var record = records[i];
sum[record.model] = record.quantity + (sum[record.model] || 0);
}
document.body.innerHTML = JSON.stringify(sum);演示:http://jsfiddle.net/Dhsm5/
把这个对象转换成你想要的格式是很容易的。
发布于 2012-12-27 02:54:44
Select sum(quantity)
From yourtable
Group by model;这个应该可以了。
https://stackoverflow.com/questions/14044830
复制相似问题