それ以外の :
var sideOne = parseInt(newLigning[0],10);
あなたはある種のものを持ちたいかもしれません:
var sideOne = performMath(newLining[0],10);
どこ :
function performMath(equation) {
//CODE HERE
}
performMath
いくつかの方法で行うことができます。方程式を分割し、2の間の数値と方程式を取得する必要があります。これは再帰的に実行できます。
これは良い出発点になると思います。
編集
質問に答える必要はありませんが、操作優先度(PEDMAS)を考慮に入れ始めると、これは少し難しい作業になります。アプローチは同じですが、performMath
もう少し複雑にする必要があります。このような場合、数値にはある種の配列構造を、方程式には別の配列構造をお勧めします。
編集2
Paul S
また、始める前に弦を消毒することの良い点を作りました。誰かが方程式を入力するとは限りません。リッチクックをプログラミングするとき、次のように述べています。
「今日のプログラミングは、より大きく、より優れたフールプルーフプログラムを構築しようと努力しているソフトウェアエンジニアと、より大きく、より優れた馬鹿を生み出そうとしている宇宙との間の競争です。これまでのところ、宇宙は勝利を収めています。」
編集3
この小さなコードスニペットは多少役立つはずです...どうしてもこれは最も効率的なコードではないかもしれません...
var equation = "1+22-3";
var operators = "+-*\/"
var currentNumber = "";
var numbers = new Array();
var operatorArray = new Array();
for(var i=0; i<equation.length; i++) {
var currentChar = equation.charAt(i);
if(operators.indexOf(currentChar) != -1) {
operatorArray[operatorArray.length] = (currentChar);
numbers[numbers.length] = (currentNumber);
currentNumber = "";
} else {
currentNumber = currentNumber + currentChar;
alert(currentNumber);
}
}
numbers[numbers.length] = currentNumber;
alert("numbers : " + numbers);
alert("operators : " + operatorArray);
今、あなたがしなければならないのは、配列を調べて適切な操作を実行することだけです。