2016-04-07 11 views
-2

私のグラフにplotLineの形式で値を返したいとします。関数を使用してplotLineの値を返す[HighCharts]

plotLines: [{ 
        color: 'red', 
        value: resp.data.res0.map(function(a){ 
        sum += parseInt(a[1]); 
        return sum; 
        }), 
        width: '1', 
        zIndex: 2 
       }] 
       }, 

ここでsumの値はそれほど重要ではなく、数値であることがわかります。しかし、私はどのように私はチャートにそれをレンダリングするはずです。 [1]での応答はJSONです。

+1

私は質問を理解していないんです。 'value'が' resp.data.res0'の 'a [1]'の合計である値で終わるのはあなたの目標ですか? –

答えて

2

あなたの目標は、あなたがreduce、ないmapを探している、resp.data.res0内のすべてのa[1]秒の合計とvalueを初期化する場合:

value: resp.data.res0.reduce(function(sum, a){ 
    return sum + parseInt(a[1]); 
}, 0) 

私は上記の使用2引数形式で、 reduceは配列内の各エントリに対してコールバックを1回呼び出し、前の合計と配列要素を渡します。コールバックの戻り値は新しい合計です。合計は0(2番目の引数)で初期化されます。

例:

var res0 = [ 
 
    [undefined, "1"], 
 
    [undefined, "2"], 
 
    [undefined, "3"], 
 
    [undefined, "4"] 
 
]; 
 
var value = res0.reduce(function(sum, a) { 
 
    return sum + parseInt(a[1]); 
 
}, 0); 
 
document.body.innerHTML = value;

+0

関数でconsole.log(sum)を使用すると、値が取得されますが、グラフにレンダリングされるものは何もありません。returnステートメントはplotLines []に値を与えるようには機能しませんか?また、合計は3回計算されます。なぜなら、いくつの応答があるか、合計の最終/最終値を得るにはどうすればよいのでしょうか? – Kjetil

+0

@Daniel:上記のコードは、 'res0'配列の要素の' 1'プロパティの値の合計** one ** sumを生成します。したがって、上記では、1 + 2 + 3 + 4 = 10であるため、 'reduce'コールは10を返します。 –

+0

わずかな見落とし。 JSONレスポンスは次のようになります。 {[2016-02-11]、[5]}、a [0]は日付、a [1]には計算したい値が含まれています。 – Kjetil

関連する問題