Как отделить числа и арифметические операторы от строки?

#javascript #arrays #for-loop

#javascript #массивы #for-цикл

Вопрос:

У меня есть строка, мне нужно прочитать ее и разделить на числа и операции для калькулятора.

Например: если входные данные являются "22*432 33"

Мне нужно, чтобы консоль принимала строку целиком и добавляла числа в массив, пока она не найдет знаки операции, и помещала знак операции в другой массив, чтобы выходной результат:

 numbers = ["22", "432", "33"];
operations = ["*", " "];
  

Язык, который я использую, — javascript
Я знаю, что вопрос может быть сложным, но я пытаюсь решить его в течение недели без успеха.

Одна из моих неудачных попыток:

 var numbers = [];
var tokens = [" ", "-", "/", "*"];
var textfield = "22*432 33";

for (var i = 0; i <= textfield.trim().length; i  ) {
  if (tokens.includes(textfield[i]) == false) {
    numbers.push(textfield.split());
  }
}
console.log(textfield);
console.log(tokens);
console.log(numbers);  

Выходной результат:

введите описание изображения здесь

Комментарии:

1. Что вы пробовали?

2. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

3. Вы можете создать фрагмент здесь, никогда не делитесь кодом в виде изображения.

4. Итак, в чем именно заключается ваш вопрос?

5. @Liam Я хочу, чтобы выходные данные представляли собой 2 массива, которые включают введенное число, а другой — используемые операции, поэтому в примере на изображении выходные данные должны быть числами[«2», «6»] , и используемые операции[«*»]

Ответ №1:

Вы можете разделить свой ввод на цифры и не цифры.

 const input = "22*432 33";
const numbers = input.split(/D/g);
const op = input.split(/d/g).filter(Boolean);

console.log(numbers);
console.log(op);  

Комментарии:

1. Как мы можем снова объединить эти конечные массивы в выражении?