#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. Как мы можем снова объединить эти конечные массивы в выражении?