前提・実現したいこと
エクセル関数を含んだ以下のようなテキストを、JSX構文の三項演算式に変換したいと考えております。
"=if(@currentField<=70,'〇','×')"
↓変換結果
@currentField <= 70 ? '〇' : '×'
以下に自身で書いたコードを記載しています。
しかし、手間が掛かっている方法ではないかと気になっており、そもそもやり方としてあっているか、詳しい方が居ましたらご教示願います。
自身で書いたコード
JSX
1 2 3const functionText = "=if(@currentField<=70,'〇','×')"; 4var left = ""; 5var right= ""; 6 7const conditionEndIndex = functionText.indexOf(','); 8const condition = functionText.substring(4, conditionEndIndex); //@currentField<=70 9 10if (condition.indexOf("<=") !== -1) { 11 const leftEndIndex = condition.indexOf("<="); 12 left = condition.substring(0, leftEndIndex); // @currentField 13 right = condition.substring(leftEndIndex + 2, condition.length); // 70 14 15} 16 17const exprIfTrueEndIndex = functionText.indexOf(',', conditionEndIndex + 1); 18const exprIfTrue = functionText.substring(conditionEndIndex + 1, exprIfTrueEndIndex); // '〇' 19 20const exprIfFalseEndIndex = functionText.indexOf(')', exprIfTrueEndIndex); 21const exprIfFalse = functionText.substring(exprIfTrueEndIndex + 1, exprIfFalseEndIndex); // '×' 22 23const expression = left <= right ? exprIfTrue : exprIfFalse; // @currentField <= 70 ? '〇' : '×'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。