From 1e7c67314ed35897e04e9d6e237b7cdbbbfb7dc7 Mon Sep 17 00:00:00 2001 From: koronya Date: Mon, 8 Jun 2026 04:24:37 +0900 Subject: [PATCH] [JS][7kyu] Basic Math (Add or Subtract) --- .../basic-math-add-or-subtract/koronya.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 codewars/7kyu/basic-math-add-or-subtract/koronya.js diff --git a/codewars/7kyu/basic-math-add-or-subtract/koronya.js b/codewars/7kyu/basic-math-add-or-subtract/koronya.js new file mode 100644 index 000000000..cbf6b3afd --- /dev/null +++ b/codewars/7kyu/basic-math-add-or-subtract/koronya.js @@ -0,0 +1,21 @@ +// [JS][7kyu] Basic Math (Add or Subtract) +// basic-math-add-or-subtract +// https://www.codewars.com/kata/5809b62808ad92e31b000031/train/javascript + +const calculate = (str) => { + const numbers = str.match(/\d+/g) + const words = str.match(/[a-zA-Z]+/g) + const arr = numbers.map((num, index) => { + const number = Number(num) + if (index === 0 || words[index - 1] === 'plus') { + return number + } + return -1 * number + }) + + return String(arr.reduce((acc, curr) => acc + curr, 0)) +} + +calculate('1plus2plus3plus4') === '10' +calculate('1minus2minus3minus4') === '-8' +calculate('10plus20plus30minus40') === '20'