2017-12-26 20 views
0

もっと良い方法がありますが、24個の変数を渡す必要があるGoogle Chartがあります。Google Chartで複数の変数をチェックする必要があります(または非境界値を非表示にする)

最後の目標は、実際に渡された数字のみを表示し、それ以外のものは無視することです。私は24のif文を実行するとこれが可能であることを知っていますが、もっと良い方法があればいいと思っていました。

基本的に私はその後、私が作成されたものにすべてのパラメータを設定してい function drawGoogFinanceChart(chartnamelong, chartobj) {

この関数を呼んでいます。そうでなければチャートが壊れます(未定義は処理できません)。

{ 
 
     var v1 = chartobj.onemil; 
 
     var v2 = chartobj.halfmil 
 
     var v3 = chartobj.onehundo; 
 
     var v4 = chartobj.fiftythous; 
 
     var v5 = chartobj.tenthous; 
 
     var v6 = chartobj.ninethous; 
 
     var v7 = chartobj.eightthous; 
 
     var v8 = chartobj.seventhous; 
 
     var v9 = chartobj.sixthous; 
 
     var v10 = chartobj.fivethous; 
 
     var v11 = chartobj.fourthous; 
 
     var v12 = chartobj.threethous; 
 
     var v13 = chartobj.twothous; 
 
     var v14 = chartobj.onethous; 
 
     var v15 = chartobj.ninehund; 
 
     var v16 = chartobj.eighthund; 
 
     var v17 = chartobj.sevenhund; 
 
     var v18 = chartobj.sixhund; 
 
     var v19 = chartobj.fivehund; 
 
     var v20 = chartobj.fourhund; 
 
     var v21 = chartobj.threehund; 
 
     var v22 = chartobj.twohund; 
 
     var v23 = chartobj.hund; 
 
     var v24 = chartobj.other; 
 
    }

その後、私は明らかにチャートにすべての変数を入れて...

var data = google.visualization.arrayToDataTable([ 
 
['Amount', 'Respondents'], 
 
['1 Million', v1], 
 
['500,000', v2], 
 
['100,000', v3], 
 
['50,000', v4], 
 
['10,000', v5], 
 
['9,000', v6], 
 
['8,000', v7], 
 
['7,000', v8], 
 
['6,000', v9], 
 
['5,000', v10], 
 
['4,000', v11], 
 
['3,000', v12], 
 
['2,000', v13], 
 
['1,000', v14], 
 
['900', v15], 
 
['800', v16], 
 
['700', v17], 
 
['600', v18], 
 
['500', v19], 
 
['400', v20], 
 
['300', v21], 
 
['200', v22], 
 
['100', v23], 
 
['Other', v24] 
 
]);

これは、これと同様のチャートを描画します: をGoogle Chart

私はむしろ0である値を表示しません。私は

if (chartobj.onemil != undefined) { data.push(['1 Million', v1]); }

のような何かをした場合、私はこれを行うことができます知っているしかし、私はその24倍を行う必要があるだろう。これを行うためのクリーンな方法があった場合、私はちょうど思っていた(またはすべてでそれを行うには全く別の方法!)

答えて

0

Object.entriesフィルタでObject.entriesサポートは良いことではありません
ので、仕事をする必要があり、あなたpolyfill

// const obj = { foo: 'bar', baz: 42 }; 
// console.log(Object.entries(obj)); 
// [ ['foo', 'bar'], ['baz', 42] ] 

// filter will only return the arrays with value different than undefined 
const data = Object.entrie(chartobj).filter(([key, value]) => value !== undefined); 
google.visualization.arrayToDataTable(data) 
関連する問題