2017-12-26 4 views
0

더 좋은 방법이있을 수 있지만 24 개의 변수를 전달해야하는 Google 차트가 있습니다.Google 차트에서 여러 변수를 확인하거나 필요없는 값을 숨길 필요가 있습니다.

최종 목표는 실제로 전달 된 숫자 만 표시하고 그렇지 않은 숫자는 무시하는 것입니다. 24 if-statements를 사용하면 이것이 가능하다는 것을 알고 있지만 더 좋은 방법이 있는지 궁금해하고 있습니다.

는 기본적으로 내가 만든 것에 모든 매개 변수를 설정하고있어이 함수 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 지원이 좋지 않다
부터 일을해야합니다, 당신 a를 사용해야합니다. 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) 
관련 문제