2017-02-11 6 views
0

자바 스크립트를 사용하여 작은 스크립트를 작성했습니다. 여기서는 텍스트 편집기의 내용을 읽고 산술/기타 연산을 작성된 내용에 따라 수행합니다.두 개 이상의 데이터 집합을 매핑하고 차트로 표시 할 필요가 있습니다. JavaScript를 사용하여

마찬가지로 "col0 + col1"을 입력하면 두 개의 열이 추가되고 파이/막 대형 차트가 표시됩니다. 그러나 이것은 "col0 + col1 + 2000"을 수행하는 데 어려움을 겪고 있습니다. 여기서 2000은 최종 결과에 추가되어야합니다.

if (formula.split(" ")[nCnt + 1] == "+") { 
    if (isNumeric(formula.split(" ")[nCnt])) { 
     numTo = formula.split(" ")[nCnt]; 
     sym = formula.split(" ")[nCnt + 1]; 
     sym += numTo; 

     // debugger; 
    } else { 
     sym = formula.split(" ")[nCnt + 1]; 
    } 

    secondaryData[secondaryData.length - 1] = secondaryData[value].map(function (num, idx) { 
     //if (isNumber(numTo)) { 
      num += sym; 
      res = num + secondaryData[formula.split(" ")[nCnt + 2]][idx]; 
      return res; 
     // } 
    }); 
} 

내 논리는 공간을 사용하여 모든 것을 분할하는 것입니다. 그런 다음 다음 색인에 "+"가 있으면 현재 색인에 숫자가 있는지 확인하고 값을 var에 저장하십시오.

지도 함수를 사용하여 마침내 모든 것을 추가하지만 정수 + 정수가 아닌 Var + 정수를 수행합니다. 또한 "col0 + col1 + col2"등과 같이 더 많은 열을 추가 할 수있는 방법을 알고 싶습니다.

+0

텍스트 편집기를 사용하여 수식 바를 Excel과 같은 방식으로 처리하고 싶습니까? – Kira

+0

yea sorta, ive 이미 테이블 형태로 구현되었으므로, 나는 단지 하나의 그래픽으로 수행해야만한다. – Venky

+0

isNumeric() 및 isNumber() 메소드 뒤에 코드를 표시 할 수 있습니까? 내 생각 엔 당신의 숫자가 문자열 ("var + 정수형")로 나오고 있다는 것입니다. 'parseInt (num)'가 도움이 될 것입니다. –

답변

0

값이 숫자인지 확인하기 위해 계산을 수행하는 첫 번째 단계가 있습니다. 값을 파싱해야합니다.

const formulas = [col1, col2, col3, col4]; 
for (const formula of formulas) { 
    if (isNumeric(formula.split(" ")[nCnt])) { 
     numTo = parseFloat(formula.split(" ")[nCnt]); 
     sym = parseFloat(formula.split(" ")[nCnt + 1]); 
     sym += numTo; 
    } else { 
     sym = formula.split(" ")[nCnt + 1]; 
    } 
} 

이 코드 :

if (isNumeric(formula.split(" ")[nCnt])) { 
    numTo = parseFloat(formula.split(" ")[nCnt]); 
    sym = parseFloat(formula.split(" ")[nCnt + 1]); 
    sym += numTo; 
} else { 
    sym = formula.split(" ")[nCnt + 1]; 
} 

당신은 먼저 다음 배열의 각 값에 대한 기능을 실행할 수, 배열 그룹 그들에게 필요, 모든 열이를 실행하고 싶었다면 nCnt이 나에게 정의되어 있지 않기 때문에 실행되지는 않지만 바라건대 올바른 방향으로 사용자를 안내합니다.

+0

nCnt는 "for"루프의 인덱스로 사용되어 텍스트 편집기에서 모든 항목을 검색하고 숫자/부호 또는 col인지 확인합니다. col0 + col1을 입력하고 스페이스로 나눠서 nCnt – Venky

+0

의 인덱스가 @Venky의 값을 분석 할 때까지 모든 것을 확인하십시오. 다른 솔루션을 찾은 경우 여기에 답변으로 게시 할 수 있습니다. 그렇지 않은 경우 다른 사람들이 귀하의 문제를 더 잘 이해할 수 있도록 실행 가능한 스 니펫을 게시해야합니다. 코드를 실행할 수 없기 때문에 문제를 재현 할 수 없습니다. –

+0

isNumeric 함수는 parseInt를 수행하지만, diff 접근 방식을 사용하지 않아도 곧 업데이트되지 않습니다. – Venky