1

現在、バックボーンを使った簡単な在庫管理アプリを作成中です。データベースにモデルと数量を含むテーブルがあります。これは、オブジェクトの strigify バージョンです。

var invt =

[ {
"id":1,
"モデル":"Canon SX230",
"数量":10,
"価格":"150.50"
},
{
"id":2,
"モデル":"Canon Rebel T3i",
" qty ":25,
"price":"450.50",
},
{
"id":3,
"model":"Canon Rebel T2",
"qty":10,
"price":"250.00"
},
{
"id" ":4,
"モデル":"Canon Rebel T2i",
"数量":15,
"価格":"275.00"
},
{
"id":5,
"model":"Canon SX230",
"qty":5,
"price":"125.00"
}]

モデルに基づいて数量を合計するためにフィルター処理するにはどうすればよいですか。類似モデルの合計数量で新しいオブジェクトを作成します。

基本的に結果は次のようになります:
[{
"id":1,
"model":"Canon SX230",
"qty":15,
"price":"275.00"
},
{
"id":2,
"model":" Canon Rebel T3i",
"数量":25,
"価格":"450.50"
}]
など...

私は次のループを使用しようとしています:

変数合計 = {};

    for (var i = 0; i < invt.length; i++) { 
        var record = invt[i];

        sum.model = record.model + (sum.model);
    };
4

2 に答える 2

0
Select sum(quantity)
From yourtable
Group by model;

これでうまくいくはずです。

于 2012-12-26T18:54:44.243 に答える
0

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-26T19:04:12.463 に答える