0

次のようなJSONオブジェクトの場合:

[{
    "gemeente": "amsterdam",
    "stadsdeel": "centrum",
    "adres": "damrak 28-30",
    "bvo": "2000",
},
{
    "gemeente": "amsterdam",
    "stadsdeel": "centrum",
    "adres": "damrak 66",
    "bvo": "1500",
    "": ""
}]

値の合計を取得しようとしていbvoます。この場合、出力は3500になります。次に、データの視覚化にこの番号を使用する必要があります。私はそれで働いていますd3.jsが、どんなJavascriptソリューションでもかまいません。

4

3 に答える 3

3

D3はd3.sumでこれを非常にうまく処理しますが、適切なテストを行わなくても、構文は次のようになります。

d3.sum(list, function(d) { return d.bvo; });
于 2013-06-01T18:04:34.500 に答える
1

必要なのは

var list = [{
    "gemeente": "amsterdam",
    "stadsdeel": "centrum",
    "adres": "damrak 28-30",
    "bvo": "2000",
},
{
    "gemeente": "amsterdam",
    "stadsdeel": "centrum",
    "adres": "damrak 66",
    "bvo": "1500",
    "": ""
}];

// code to sum the values
var sum = 0;
for(var len = list.length, i=0; i < len; i++){ // for each object in the list
    var item = list[i]; 
    sum += parseInt(item.bvo, 10); // parse its "bvo" element as integer and add it to the sum
}

// output to console the sum.. or do whatever you want with the sum here..
console.log(sum);
于 2013-01-22T15:40:34.920 に答える
0

私は通常のJavascriptで答えを得ました:

var SumByTipe = {};
for (i in data) {
    var currtipe = data[i].tipe;
    if (currtipe in SumByTipe) {
        for (j in data[i]) {
            if (j != "tipe" && j != "mc") {
                SumByTipe[currtipe][j + '_total'] += parseFloat(data[i][j]);
            }
        }
    }
    else {
        var firstSum = {};
        for (j in data[i]) {
            if (j != "tipe" && j != "mc"){
                firstSum[j + '_total'] = parseFloat(data[i][j]);
            }
        }
        SumByTipe[currtipe] = firstSum;
    }
}
console.log(SumByTipe);

どういう仕組みなのかよくわかりませんが、うまくいきました。:-)

于 2013-01-22T12:26:48.563 に答える