From 1245f4453c201235f65bddab6dd20547676574e7 Mon Sep 17 00:00:00 2001 From: nick-devos Date: Tue, 30 Jun 2020 23:50:24 -0400 Subject: [PATCH 1/3] save progress - not done --- assets/js/numbers.js | 140 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/assets/js/numbers.js b/assets/js/numbers.js index 5a925a6..8b5d861 100644 --- a/assets/js/numbers.js +++ b/assets/js/numbers.js @@ -1,3 +1,143 @@ function compute(expression) { // TODO - write method definition here + //10-2*12 + var array = expression.split(""); + + //extrapolates numbers from expression and stores them in an array + var digits = ""; + for (let x = 0; x < array.length; x++) { + if(array[x] != "*" && array[x] != "/" && array[x] != "+" && array[x] != "-") { + digits += array[x]; + } + else { + digits += " "; + } + } + var numbers = digits.split(" "); + //console.log(numbers); + + //extrapolates operators in their respective order + var operators = []; + for (let x = 0; x < array.length; x++) { + if(array[x] == "*" || array[x] == "/" || array[x] == "+" || array[x] == "-") { + operators.push(array[x]); + } + } //console.log(operators); + + var value; + + for(let x = 0; x < operators.length; x++) { + if(operators[x] == "*") { + value = numbers[x] * numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + if (operators[x] == "/") { + value = numbers[x] / numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + } + + for(let x = 0; x < operators.length; x++) { + if(operators[x] == "+") { + value = parseInt(numbers[x]) + parseInt(numbers[x+1]); + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + if (operators[x] == "-") { + value = numbers[x] - numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + } + +return numbers[0]; + + + + + + + + + + + + + + + + + + + + + + + + + + + // // index of operators + // var mulIndex = []; + // var divIndex = []; + // var addIndex = []; + // var subIndex = []; + // for (let x = 0; x < operators.length; x++) { + // if(operators[x] == "*") { + // mulIndex.push(x); + // } + // // else if(operators[x] == "/") { + // // divIndex.push(x); + // // } + // // else if(operators[x] == "+") { + // // addIndex.push(x); + // // } + // // else if(operators[x] == "-") { + // // subIndex.push(x); + // // } + // } + // var value; + // // for (let x = 0; x < mulIndex.length; x++) { + // // let y = mulIndex[x]; + // // value = numbers[y] * numbers[y+1]; + // // operators.splice(y,1); + // // numbers[y] = value; + // // numbers.splice(y+1, 1); + // // } console.log(value); + // console.log(operators); + // console.log(numbers); + // console.log("mul " + mulIndex); + // // console.log("div " + divIndex); + // // console.log("add " + addIndex); + // // console.log("sub " + subIndex); + + // //perform multiplication and division + + + // // console.log(digits); + // // console.log(array); + + } \ No newline at end of file From 6eb03e83fd411b06f298a12188af17883b0505c9 Mon Sep 17 00:00:00 2001 From: nick-devos Date: Wed, 1 Jul 2020 00:02:38 -0400 Subject: [PATCH 2/3] almost correct --- assets/js/footer-functions.js | 2 +- assets/js/numbers.js | 52 ++++++++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/assets/js/footer-functions.js b/assets/js/footer-functions.js index 3587073..3b78ea2 100644 --- a/assets/js/footer-functions.js +++ b/assets/js/footer-functions.js @@ -45,7 +45,7 @@ function additionAndSubtractionTest() { function additionAndMultiplicationTest() { - testCompute(0, "1+1*2"); + testCompute(3, "1+1*2"); testCompute(16, "10+6*1"); testCompute(34, "10+2*12"); } diff --git a/assets/js/numbers.js b/assets/js/numbers.js index 8b5d861..ed2b3c3 100644 --- a/assets/js/numbers.js +++ b/assets/js/numbers.js @@ -49,9 +49,56 @@ function compute(expression) { } } + for(let x = 0; x < operators.length; x++) { + if (operators[x] == "-") { + value = numbers[x] - numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + if(operators[x] == "+") { + value = parseFloat(numbers[x]) + parseFloat(numbers[x+1]); + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + } + + + //cleanup -- without this again some are stopping one short, others are fine + for(let x = 0; x < operators.length; x++) { + if(operators[x] == "*") { + value = numbers[x] * numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + if (operators[x] == "/") { + value = numbers[x] / numbers[x+1]; + operators.splice(x, 1); + + console.log(operators); + numbers[x] = value; + numbers.splice(x+1, 1); + + console.log(numbers); + } + } for(let x = 0; x < operators.length; x++) { if(operators[x] == "+") { - value = parseInt(numbers[x]) + parseInt(numbers[x+1]); + value = parseFloat(numbers[x]) + parseFloat(numbers[x+1]); operators.splice(x, 1); console.log(operators); @@ -72,6 +119,9 @@ function compute(expression) { } } + + + return numbers[0]; From f4f28733390f0a72abddaa3c9798a3101e504082 Mon Sep 17 00:00:00 2001 From: nick-devos Date: Wed, 1 Jul 2020 00:10:02 -0400 Subject: [PATCH 3/3] removed some commented code --- assets/js/numbers.js | 72 +------------------------------------------- 1 file changed, 1 insertion(+), 71 deletions(-) diff --git a/assets/js/numbers.js b/assets/js/numbers.js index ed2b3c3..4f50ec9 100644 --- a/assets/js/numbers.js +++ b/assets/js/numbers.js @@ -119,75 +119,5 @@ function compute(expression) { } } - - - -return numbers[0]; - - - - - - - - - - - - - - - - - - - - - - - - - - - // // index of operators - // var mulIndex = []; - // var divIndex = []; - // var addIndex = []; - // var subIndex = []; - // for (let x = 0; x < operators.length; x++) { - // if(operators[x] == "*") { - // mulIndex.push(x); - // } - // // else if(operators[x] == "/") { - // // divIndex.push(x); - // // } - // // else if(operators[x] == "+") { - // // addIndex.push(x); - // // } - // // else if(operators[x] == "-") { - // // subIndex.push(x); - // // } - // } - // var value; - // // for (let x = 0; x < mulIndex.length; x++) { - // // let y = mulIndex[x]; - // // value = numbers[y] * numbers[y+1]; - // // operators.splice(y,1); - // // numbers[y] = value; - // // numbers.splice(y+1, 1); - // // } console.log(value); - // console.log(operators); - // console.log(numbers); - // console.log("mul " + mulIndex); - // // console.log("div " + divIndex); - // // console.log("add " + addIndex); - // // console.log("sub " + subIndex); - - // //perform multiplication and division - - - // // console.log(digits); - // // console.log(array); - - + return numbers[0]; } \ No newline at end of file