Разделить строку с номерами - PullRequest
0 голосов
/ 13 декабря 2018

Я пытался разбить строку по номерам.В основном у меня есть строка, такая как:

"10x + 10"

JS разбивает ее и получает:

["+10x", "+10"]

Я пытался сделать это несколько раз, но не добился успеха.Если я правильно понимаю, мне просто нужно разделить его на + - / *.Моя лучшая попытка была такая:

var statement = ["10x + 10"]
var spliters = ['+', '-', '*', '/'];

for (i = 0; i < spliters.length; i++) {
    for (o = 0; o < statement.length; o++) {
        statement[o] = statment[o].split(spliters[i]);
        for (p = 0; p < statment[o].length - 1; p++) {
            statement[o][p] = spliters[i] + statement[o][p];
        }
        statement = flatten(statement);
    }
}

Но это не работает.Также я хочу, чтобы + и - были впереди элементов массива, а не * и /.Если бы кто-нибудь мог помочь мне с этим, я был бы очень признателен.

1 Ответ

0 голосов
/ 13 декабря 2018

Имейте в виду, что Array.prototype.split() может принимать регулярные выражения:

let str = "10x + 10";
let arr = str.split(/[+|-|\*|/]/);
console.log(arr); // output: ["10x ", " 10"];

Хотя это не очень хороший способ для анализа арифметических выражений.Для этого я рекомендую алгоритм Shunting-ярд .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...