2017-02-11 10 views
0

Javascriptを使用して小さなスクリプトを作成しました。テキストエディタの内容を読み込み、書き込まれた内容に従って算術演算やその他の演算を行います。2つ以上のデータセットをマップし、グラフとして表示する必要があります。

「col0 + col1」と入力すると、2つの列が追加され、円グラフが表示されます。 しかし、これは私が苦労してやっていることです、 "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、これは既にテーブル形式で実装されています。私はグラフィカルなコードで行う必要があります – Venky

+0

'isNumeric()'メソッドと 'isNumber()'メソッドの後ろにコードを表示できますか?私の推測では、あなたの数字は文字列( "var + integer thing")として出てきています。 'parseInt(num)'が役に立ちます。 –

答えて

0

数値が数値かどうかを確認する最初のステップはありますが、値を解析する必要があります。

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

あなたはすべての列のためにこれを実行したい場合は、まずあなたは、あなたが配列内の各値に対して機能を実行することができ、配列内のグループにそれらを必要とするでしょう:

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]; 
    } 
} 

このコードnCntが私のために定義されていないので、実際には実行されませんが、うまくいけば正しい方向にあなたを指しています。

+0

nCntは "for"ループのインデックスとして機能し、テキストエディタからすべてのものを取得し、数字/記号かどうかをチェックします。 col0 + col1と入力し、スペースで分割します。nCnt – Venky

+0

のインデックスが@Venkyの値を解析するまで、各項目をチェックします。別の解決策が見つかった場合は、ここで回答として投稿することができます。そうでない場合は、実行可能なスニペットを投稿して、他のユーザーが問題をよりよく理解できるようにする必要があります。コードを実行することができないため、問題は再現できません。 –

+0

私のisNumeric関数はparseIntを実行しますが、diffメソッドを使用しています – Venky

関連する問題